[C/C++基礎]-判斷輸入數字是否為質數

[C/C++基礎]-判斷輸入數字是否為質數

[C/C++基礎]-判斷輸入數字是否為質數

 

判斷質數一直是很基本的問題,所以我也不免俗的PO一下,有興趣的(C/P)同好,當然歡迎(C/P)一下。

 

程式碼

#include<stdio.h>
main()
{
    int i,j;
    bool k=true;
    scanf("%d",&i);
    for(j=2;j<i;j++)
    {
        if(i%j==0)
        {
            k=false;
            break;
        }
    }
    if(k==true)
    {
        printf("質數\n");
    }
    else
    {
        printf("非質數\n");
    }
 
}

 

 


6 thoughts on “[C/C++基礎]-判斷輸入數字是否為質數

  1. 他把1判斷為質數欸@@
    版主回覆:(11/04/2015 12:46:06 PM)
    抱歉,當初沒注意到,下面在出更正版
    #include <stdio.h>
    main()
    {
    int i,j;
    int k=1;
    scanf("%d",&i);
    for(j=2;j<i;j++)
    {
    if(i%j==0)
    {
    k=0;
    break;
    }
    }
    if((i>1)&&k==1)
    {
    printf("質數\n");
    }
    else
    {
    printf("非質數\n");
    }
    }

  2. 要怎做範圍內的質數總數?
    版主回覆:(11/24/2014 01:45:53 PM)
    #include<stdio.h>
    main()
    {
    int i,j,l;
    int k=1;
    i=10;//scanf("%d",&i);
    printf("質數:\t");
    for(l=0;l<i;l++)
    {
    for(j=2;j<l;j++)
    {
    if(l%j==0)
    {
    k=0;
    break;
    }
    }
    if((l>1)&&(k==1))
    {
    printf("%d;\t",l);
    }
    k=1;
    }
    printf("\n");
    }
    //執行結果 http://codepad.org/lMO93RWh

  3. for(j=2….
    為什麼 j 不能等於1
    版主回覆:(11/17/2015 01:39:19 PM)
    因為任何數都可以被1整除
    另外1不是質數
    以上

  4. 你忘了加上2這個條件
    2可以被2整除
    但是它是質數
    版主回覆:(01/09/2016 09:15:24 AM)
    我有考慮到,因為當輸入二時
    並不會進入迴圈判斷
    所以會直接回應值數
    下面連結是線上執行結果
    http://codepad.org/QO8dn5pP

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *