首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

求解质数中碰到的一个循环有关问题,帮忙看下,多谢

2012-04-13 
求解质数中碰到的一个循环问题,帮忙看下,谢谢#includestdio.h main(){intn,iprintf( \npleaseinputanu

求解质数中碰到的一个循环问题,帮忙看下,谢谢
#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

热点排行