#include <stdio.h>
int main()
{
int x;
for(x=2;x<=100;x++){
int isprime=1;
int i;
for(i=2;i<x;i++){
if(x%i==0){
isprime=0;
break;
}
}
if(isprime==1){
printf("%d\n",x);
}
}
return 0;
}
下面的不可以正常运行(我用的dev c++,只能得到2和3),为什么?
#include <stdio.h>
int main()
{
int x;
int isprime=1;
int i;
for(x=2;x<=100;x++){
for(i=2;i<x;i++){
if(x%i==0){
isprime=0;
break;
}
}
if(isprime==1){
printf("%d\n",x);
}
}
return 0;
}
这是原来的代码
在循环中, 每当你要重新考虑一个数是不是质数的时候, 你要重新设 isprime=1; 所以这句话要放在外循环的里面, 这样才能每次都重新赋值。