J'essaie de programmer un vérificateur de nombre premier dans c mais le code suivant renvoie certains nombres premiers comme non premiers. Je n'ai pas pu trouver de non premier qui s'enregistre comme premier. Je ne sais pas où je me suis trompé et je commence à soupçonner que ma boucle est en train de sauter des numéros.Pour sauter des numéros de boucle en 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 problèmes: votre algoritm s'arrête quand un nombre ne se divise pas, sautant les autres !! et pensez à boucler jusqu'à sqrt (nummer), vous économiserez des cycles. Il existe de nombreux doublons/questions sur la vérification des nombres premiers sur SO et codereview. Les vérifier. –