2012年1月30日 星期一

[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");

    }

 

}

 



 




3 則留言:

  1. 上面的程式好像不能被標準c的編譯器來編譯

    回覆刪除
  2. 他把1判斷為質數欸@@

    版主回覆:(01/01/1970 12:00:00 AM)


    抱歉,當初沒注意到,下面在出更正版
    #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");
    }
    }

    回覆刪除
  3. 要怎做範圍內的質數總數?


    版主回覆:(11/24/2014 01:32:44 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

    回覆刪除