網域名稱俱樂部

網域名稱俱樂部 (https://www.domainclub.org/index.php)
-   一般軟體與網路使用討論 (https://www.domainclub.org/forumdisplay.php?f=43)
-   -   C語言判定是否為質數的程式 (https://www.domainclub.org/showthread.php?t=36229)

哈啦 2014-03-12 06:29 PM

C語言判定是否為質數的程式
 
書上的範例如下:

代碼:

#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!

yumi 2014-03-13 09:57 AM

输入4 试一下就知道了 结果是不一样的

另外 输入1 可以发现 两种写法都不对

wufenpu 2014-03-13 11:36 AM

1應該要加個特別判斷式,判斷成非質數。

哈啦 2014-03-13 11:58 AM

原來書上範例才是對的,就是考慮到4這個數字。~yes

難怪寫程式常常會有所謂的bug,大概就是類似在這種小地方設計者疏忽了吧??:teeth

best-url 2014-03-13 02:53 PM

https://fbcdn-sphotos-h-a.akamaihd.n...66243689_n.png


所有時間均為 +8。現在的時間是 08:14 PM

Powered by vBulletin® 版本 3.8.4
版權所有 ©2000 - 2024,Jelsoft Enterprises Ltd.