Langage C - Nombres premiers

Résolu
Shaey Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
Shaey Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Débutante en informatique (mais alors, vraiment, vraiment débutante), j'ai un petit problème sur un exercice. Un exercice basique et assez commun. Le but de ce dernier est de déterminer si un nombre est premier ou non.

Je sais que je peux vérifier en prenant la racine du nombre, et je trouve que ça serait plus facile. Je précise au cas où que je ne connais strictement rien au crible d'Erastosthènes (d'après ce que j'ai vu, c'est largement au dessus de mon niveau actuel).

Ce que je veux, moi, c'est diviser n par tous les nombres entre 2 et n-1, et vérifier si le reste est égal à 0 pour toutes les divisions. J'ai déjà fait le programme, mais il ne marche pas, je pense savoir pourquoi. J'ai introduit une boucle for pour faire toutes les divisions. A la suite, j'utilise la fonction if else. Si le résultat de la division est égal à 0, n n'est pas un nombre premier, dans le cas contraire, c'est un nombre premier.
Quand j'entre un nombre, ça m'affiche tout le temps que c'est un nombre premier.
Je pense que c'est parce que je ne prend pas en compte tous les résultats de la division qui ont été trouvés dans la boucle for, mais uniquement le dernier trouvé.
Je ne sais pas comment faire pour résoudre le problème.
Des idées ?
Merci d'avance.
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Dès que tu trouves que ce n'est pas un nombre premier, tu dois arrêter la boucle pour ne pas continuer. Par exemple avec un break, ou un return.
1
Shaey Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Effectivement, ça marche :)
Merci à toi, c'était tout simple, mais je l'avais tout simplement pas.
Encore merci, et bonne soirée.
0