Nombre premier en pascal

Résolu/Fermé
max123456
Messages postés
10
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
21 juillet 2010
- 20 juin 2008 à 00:38
 Raja - 5 mai 2018 à 16:22
Bonjour,

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

un programme s.v.p.

merci bcp d'avance.
A voir également:

10 réponses

fahim0788
Messages postés
111
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
19 décembre 2011
10
20 juin 2008 à 01:08
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
max123456
Messages postés
10
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
21 juillet 2010

20 juin 2008 à 18:18
merci fahim, ton programme court et util.
0
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
KX
Messages postés
16562
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 juillet 2022
2 964
2 nov. 2010 à 12:51
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
fahim juste tu as une faute en affichage pour ce msg ki sera comme ça :

write('le nombre n''est pas premier');
0
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