#include <stdio.h>
int main(void)
{
int num,x,y,prime;
printf("enter a number: \n");
scanf("%d",&num);
for(x=1;x<=num;x++) {
for(y=2;y<=x/2;y++)
if(x%y==0) {prime=0;break;}//為何這裡要增加 prime=0?
if((x%y!=0) && x!=1) prime=x;
if (prime!=0) printf("%d\n",prime); //為何要加if(prime!=0)
}
return 0;
}
有一點想不太通它的邏輯推演。
從邏輯上來說,prime=x,而x=1開始,且如果有prime=0則break,應該不會再出現有prime==0的情形啊?
|