[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"); } }
|
上面的程式好像不能被標準c的編譯器來編譯
回覆刪除他把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");
}
}
要怎做範圍內的質數總數?
回覆刪除版主回覆:(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