Forum INFOMATH
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Réassort du coffret Pokémon 151 ...
Voir le deal

[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène"

3 participants

Aller en bas

[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" Empty [résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène"

Message par sasouki Jeu 18 Mar - 17:41

Bonjour, g un exercice que je trouve une difficulté a résoudre, il propose de chercher tous les entiers premiers inferieurs ou egaux a N donne et ceci en utilisant la méthode suivant a:
- ecrire ts les entiers naturel compris entre 2 et N
- 2 n'est pas enlevé de cette liste, donc il est premier; maintenant on enleve de la liste tous les multiples de 2.
- le plus petit nombre non enleve etant 3:il est premier; maintenant enlever de la liste tous les multiples de 3.
- et ainsi de suite
merci

sasouki
Entier Naturel
Entier Naturel

Féminin
Nombre de messages : 16
Localisation : tunisie
Réputation : 1
Points : 5230
Date d'inscription : 03/02/2010

Revenir en haut Aller en bas

[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" Empty Re: [résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène"

Message par asmoutta Dim 21 Mar - 2:24

lire(n)

pour i de 1 a n-1 faire
t(i)<--i+1
fin pour
nbr_premier(t,n,1)
fin prog principale

0)def proc nbr_premier( t:tab; n:entier; i:entier)
1)si i si t(i <> 0 ) then
ecrire (t(i),'premier')
pour j de i+1 a n-1 faire
si t(j) mod t(i)=0 alors
t(j)<-- 0
fin si
fin pour
PROC nbr_premiers(t,n,i+1)
fin si
fin si
2) fin procedure






c'est une solution mais chui pas sur si elle est correcte a toi de la verifier et de l'ameliorer

asmoutta
Entier Naturel
Entier Naturel

Féminin
Nombre de messages : 11
Localisation : tunisie
Réputation : 0
Points : 5171
Date d'inscription : 12/03/2010

Revenir en haut Aller en bas

[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" Empty Re: [résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène"

Message par sasouki Mar 23 Mar - 14:00

Merciii pour la solution, g exécuté ce code et ca marche, je vais essayer d'apporter une petite modification qui consiste a: a chaque fois que un entier represente un multiple de l'entier en question on décale le tableau vers la gauche de telle sorte que le tableau final ne contiendra que les entiers premiers compris entre 2 et n puis afficher ce tableau resultat.

sasouki
Entier Naturel
Entier Naturel

Féminin
Nombre de messages : 16
Localisation : tunisie
Réputation : 1
Points : 5230
Date d'inscription : 03/02/2010

Revenir en haut Aller en bas

[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" Empty Re: [résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène"

Message par Napoléon Mer 24 Mar - 0:10

sasouki a écrit:Bonjour, g un exercice que je trouve une difficulté a résoudre, il propose de chercher tous les entiers premiers inferieurs ou egaux a N donne et ceci en utilisant la méthode suivant a:
- ecrire ts les entiers naturel compris entre 2 et N
- 2 n'est pas enlevé de cette liste, donc il est premier; maintenant on enleve de la liste tous les multiples de 2.
- le plus petit nombre non enleve etant 3:il est premier; maintenant enlever de la liste tous les multiples de 3.
- et ainsi de suite
merci

C'est ce qu'on appelle la méthode du Crible d'Ératosthène. Voir ce lien pour plus d'information.

[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" New_Animation_Sieve_of_Eratosthenes

Je te propose la solution suivante écrite en Pascal:

Code:
program Crible_Eratosthene;
uses wincrt;

Type
  TAB = array[1..1000] of integer;

Procedure Saisie(var n: integer);
begin

  repeat
    write('Saisir N: ');
    readln(n);
  until (n in [2..100])
 
end;

Procedure Affichage(n: integer; T: TAB);
var
  i: integer;
begin
  for i:=1 to n do
  begin
    if (T[i]>0) then
        writeln(T[i]);
  end; 
end;

Procedure Premiers(n: integer; var T: TAB);
var
  i,j: integer;
begin
  for i:=1 to n do
      T[i] := i;

  for i:=2 to n-1 do
      for j:=i+1 to n do
          if ((T[i]>0) and (T[j]>0) and (T[j] mod T[i]=0)) then
            T[j] := -1;
end;

var
  N: integer;
  T: TAB;

Begin

  Saisie(N);
  Premiers(N,T);
  Affichage(N,T)

end.
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7662
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" Left_bar_bleue999/1000[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" Empty Re: [résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène"

Message par sasouki Mer 24 Mar - 16:28

Merci infiniment et l'animation est excellente Very Happy

sasouki
Entier Naturel
Entier Naturel

Féminin
Nombre de messages : 16
Localisation : tunisie
Réputation : 1
Points : 5230
Date d'inscription : 03/02/2010

Revenir en haut Aller en bas

[résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène" Empty Re: [résolu] Aide pour resoudre exercice: Recherche Nombres Premiers "Eratosthène"

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum