我想編程在c中的質數檢查器,但下面的代碼返回一些素數作爲非素數。我一直沒有找到任何註冊爲素數的非素數。我不確定自己出錯的地方,並開始懷疑我的for循環正在跳過數字。For循環跳過數字在C
#include <stdio.h>
#include <stdlib.h>
int main() {
int nummer = 47203;
printf("Ist %d eine Primzahl?\n", nummer);
int dividey =2;
if (nummer == 2){
printf("nein");
}
for (dividey = 2; dividey <= nummer/2; dividey++){
if (nummer%dividey==0){
printf("nein");
break;
}else {
printf("ja");
break;
}
}
}
2個問題:當一個數字不分,你的算法停止,跳過其他!並考慮循環直到sqrt(nummer),您將保存週期。在SO和codereview上有許多關於質數檢查的重複/問題。檢查它們。 –