Nombre premier en pascal

Résolu/Fermé
Bonjour,

comment Vérifier si un nombre entier est un nombre premier, en pascal.

un programme s.v.p.

merci bcp d'avance.
Configuration: Windows XP
Internet Explorer 6.0

10 réponses

  1. salut, pour verifier si le nombre n est premier ou pas le principe est de tester tous les nombres inferieur à n qu'on, si le reste de la division de n/i est 0 donc i est un diviseur on compte les diviseurs avec la variable r,a la fin si le programme trouve plus de 2 diviseurs cela veut dire que n admet un diviseur a part 0 et lui même =>n n'est pas premier si non le nombre est premier.

    program premier;
    uses wincrt;
    var n,r,i:integer;
    begin
    write('Donnez un entier naturel : ');
    read(n);
    r:=0;
    for i:=1 to n do
    if n mod i = 0 then r:=r+1;

    if r=2 then write('le nombre est premier') else
    write('le nombre n'est pas premier');
    end.

    Rq: cette algorithme peut s'améliorer pour gagner du temps
    27
    1. merci fahim, ton programme court et util.
      0
    2. j'ai pas compris tu peux me traduire ce algorithme en francais et avec la structure répétitive repeter jusqu'a
      merci d'avance
      0
    3. Modérateur
      Les deux boucles suivantes sont équivalentes en Pascal :

      for i:=a to b do
      begin
          // instructions
      end;

      i:=a;
      while i<=b do
      begin
          // instructions
          i:=i+1; 
      end;

      Or une structure répetitive "répéter jusqu'à" correspond à une boucle while (traduire "tant que")
      Remarque : l'algorithme de fahim0788 fonctionne, mais il peut être amélioré.
      0
    4. fahim juste tu as une faute en affichage pour ce msg ki sera comme ça :

      write('le nombre n''est pas premier');
      0
    5. désolé votre algorithme est completement faux
      si (n =7) on aura mod n/i si le compteur de i est 7 alors 7/7 =1 le reste c 0 et pourton 7 est un nombre premier mais d'aprés votre algorime le résultat est contraire
      0