为什么会陷入死循环呢?
这是求100~~200之间的素数问题为什么会陷入死循环呢?/
#include"stdio.h"
#include"math.h"
main()
{ int i,j;
for(i=100;1<=200;i++)
{ if((i%2!=0)&&(i%3!=0)&&(i%5!=0)&&(i%7!=0))
printf("%d \n",i);
}
}
----------------解决方案--------------------------------------------------------
以下是引用shmilysw在2005-7-16 15:09:29的发言:
这是求100~~200之间的素数问题
为什么会陷入死循环呢?/
#include"stdio.h"
#include"math.h"
main()
{ int i,j;
for(i=100;1<=200;i++)
{ if((i%2!=0)&&(i%3!=0)&&(i%5!=0)&&(i%7!=0))
printf("%d \n",i);
}
}
请仔细看程序,for(i=101;i<200;i+=2)
其中100是偶数不用考虑,而在101到200之间所以偶数都可以不考虑,i的增长可以调为2,跳过偶数的检测。。注意中间的关系表达式,不要写错是i不是1,1<=200是永远成立的,所以会造成死循环。。。。 ----------------解决方案--------------------------------------------------------
谢过!!
----------------解决方案--------------------------------------------------------
呵呵`~是这个问题啊`~~我看了半天~~`/lh
----------------解决方案--------------------------------------------------------
以下是引用shmilysw在2005-7-16 15:09:29的发言:
这是求100~~200之间的素数问题
这样求出的不全市素数 ----------------解决方案--------------------------------------------------------
兄弟,以后这种问题要自己看清楚了再问,i和1都看不清楚,我砍!!!!
----------------解决方案--------------------------------------------------------
算法错误,这样是不行的。
比如121=11*11,但是确满足程序!
----------------解决方案--------------------------------------------------------