求解质数中碰到的一个循环问题,帮忙看下,谢谢
#include "stdio.h "
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;
}
printf( "%d ",n);
getch();
}
这个是源码,输入90,输出90=2*3*3*5
我想问下,第二个3是怎样输出的
当输出完第一个3后,i的值变成4了,程序运行为什么能再输出3
[解决办法]
你的程序里面有个while循环的,当第一个3输出完以后,还在while循环里面,i是不会变的。
[解决办法]
n=45时,执行一次,while循环还没有退出(没有执行到break;), i=3
然后n=15,此时i还是3