我想编程在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上有许多关于质数检查的重复/问题。检查它们。 –