分解质因数的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:13:43
main()
{
int n,i;
printf("\nplease input a number;\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}
}
输入90
显示90=2*3*3*5
while循环:90/2=45后不能再被2整除了就退出,而45/3=15,还可以再被3整除,所以再执行15/3=5,而5能被5整除,但5=5 while会就退出循环,所以5不输出。结果却输出了5 为什么啊?????????

代码少复制了吧,最后应该有
printf("%d",n);
吧,否则是不可能输出5的。

#include<stdio.h>

int main()
{
int n,i;
printf("\nplease input a number;\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!=1) //这个地方的I改成1
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}

}
printf("\b \n");
return 0;
}

根据你的题意,我写了个更简洁的,也是在你的基础上改的,但改的有点多了。
虽然1不是质数,我故意把1也写了进去,好看一点,哈哈

#include "stdio.h"

main()
{