Langage C - Nombres premiers

Résolu
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.

1 réponse

  1. Modérateur
    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. Effectivement, ça marche :)
      Merci à toi, c'était tout simple, mais je l'avais tout simplement pas.
      Encore merci, et bonne soirée.