私はcで素数チェッカーをプログラムしようとしていますが、次のコードはいくつかの素数を非素数として返します。私はプライムとして登録している非プライムを見つけることができませんでした。私はどこが間違っているのかわからず、私の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つの問題:1つの数字が分割されず、他の数字をスキップすると、アルゴリズムが停止します。 sqrt(nummer)までループすることを考慮すると、サイクルを節約できます。 SOとcodereviewについての素数チェックに関する多数の重複/疑問があります。それらを確認してください。 –