這是我的代碼,它應該只輸出素數。獲取C和2之間的所有素數
#include <stdio.h>
int prime(int n){
int j;
for (j=2;j<=n/2;j++){
if((n%j)==0){
return 0;
}
else{
return 1;
}
}
}
void main(){
int i,p;
for (i=2;i<=100;i++){
p=prime(i);
if(p==1){
printf("%d \n",i);
}
}
}
結果是2,3,7,9,11,13,15 ....
不2,3,5,7,11,13 ....
我做錯了什麼?
我雖然功課標籤已被棄用.. – Krishnabhadra
並在'prime'的'for'環目的是什麼,如果它總是返回它有機會重複過嗎? –
另一種方法來做到這一點,沒有任何餘數,是一個「展開」Eratosthenes篩:http://stackoverflow.com/questions/5200879/printing-prime-numbers-from-1-through-100/12543821#12543821 –