書上的範例如下:
代碼:
#include <stdio.h>
int main(void)
{
int num,x,is_prime;
printf("enter a number to test: \n");
scanf("%d",&num);
is_prime=1;
for(x=2;x<=num/2;x++)
if((num%x)==0) is_prime=0;
if(is_prime==1) printf("%d is prime.",num);
else printf("%d is not prime.",num);
return 0;
}
大致能了解它的邏輯推衍,但對於紅字那部份,我改成x<num/2,不要<=,算出來的結果是一樣的,但我覺得去掉=更合理,因為如果有=的情況,則num一定是複數,除以2才會得到某個整數和x是等於的,複數就不會是質數,多此一舉。不知我的邏輯對不對?還是有啥隱藏漏洞?
thanks!