#include <stdio.h>
int main()
{
int x;
for (x=1;x<=100;x++){
int i=2;
int isprime=1;
for(i=2;i<x;i++){
if(x%i==0)
isprime=0;
break;
}
if(isprime==1)
printf("%d\n",x);
}
return 0;
}
分界线。
#include <stdio.h>
int main()
{
int x;
int i=2;
int isprime=1;
for (x=1;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;
}
请问当我改变了第一个for的位置有什么区别,(第一个是正确的)。谢谢
因为每个数字都假设它是素数,在第二个循环内,判断它不是素数,才会把isprime改为0
所以每个数一开始都要置为1,所以isprime=1应该在第一层for循环里面,通过它来表示“假设一开始认为每个数都是素数”
第二段代码,在检测到一个偶数的时候,isprime永远就设置为0,后面基数检测不出来了
希丰展?使MD
第二个isprime只要一次变成0,就一直都是0