Bonjour,
comment Vérifier si un nombre entier est un nombre premier, en pascal.
un programme s.v.p.
merci bcp d'avance.
program premier;
uses wincrt;
var n,i,r,t,c:integer;
begin
write('Donnez un entier naturel : '); /On pourait tester si c'est un entier
read(n); i:=1; t:=1; r:=0; /J'ai ajouté t pour 'test' et c pour 'carré'
while(t=1) do /Tant que t ne change pas on refait la boucle
{ i: = i+1; c:= i*i; /incrémentation de i, pas besoin de tester i=1 !
if if (c>n) then t:=3; /si i² dépasse n on a fini le test sans trouver de diviseur
else(n mod i = 0) then t:=0; /si le reste de n/i est nul on fini le test
}; /fin de la boucle
if t=3 then write('le nombre est premier') /conclusion
else write('le nombre n'est pas premier');
end.program TestPrimalite;
const n=10000;
type crible=array[2..n] of boolean;
procedure Initialiser(var c:crible);
var k:integer;
begin
for k:=2 to n do c[k]:=false;
end;
procedure RayerMultiples(var c:crible;p:integer);
var k:integer;
begin
k:=p+p;
while k<=n do
begin c[k]:=true; k:=k+p end;
end;
procedure Construire(var c:crible);
var k:integer;
begin
for k:=2 to n do
if not c[k] then RayerMultiples(c,k);
end;
var c:crible;
i:integer;
begin
write('Construction de la table d''Erathostene entre 2 et ',n,' : ');
Initialiser(c); Construire(c); writeln('Termine');
while true do
begin
writeln;
write('Entier a tester : ');
readln(i);
if c[i] then writeln(i,' n''est pas premier')
else writeln(i,' est premier');
writeln;
end;
end.
Combien cela coûte-t-il au total ? Quelles aides apportent l'état et les acteurs du marché pour alléger cette charge non choisie ? Tous les détails sur Commentçamarche.net.
write('le nombre n''est pas premier');
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
Si n=7, on aura 7 mod 1=0 et 7 mod 7=0 (et 7 mod i > 0 pour les autres) d'où r=2 donc 7 est premier.