Se connecter / S'enregistrer
Votre question

Décomposition en facteur premier (ADA)

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
30 Octobre 2005 16:09:47

Bonjour
je recherche un programme en ada permettant de décomposer un nombre entier donné par l'utilisateur du programme en son produit de facteurs premiers.
Merci

Autres pages sur : decomposition facteur premier ada

30 Octobre 2005 16:44:18

En fait je pense etre arriver à trouver tous les diviseur d'un nombre entier. Mais pas les diviseur premier, et je ne sais pas non plus comment faire pour les restituer à la fin.
Voici ce que j'ai réussi à faire :

with ada.text_io, ada.integer_text_io;
i,p,k = integer;
ada.text_io.put("saisie d'un nombre ="); ada.integer_text_io.get(i);
ada.text_io.new_line;
p:=2;
while p<=i/2 loop
if i rem p = 0 then
k:=i/p;
ada.integer_text_io.put(k);
ada.text_io.put("est un diviseur de :"); ada.integer_text_io.put(i);
p:=p+1;
else
p:=p+1;
end if;
30 Octobre 2005 16:45:14

En fait je pense etre arriver à trouver tous les diviseur d'un nombre entier. Mais pas les diviseur premier, et je ne sais pas non plus comment faire pour les restituer à la fin.
Voici ce que j'ai réussi à faire :

with ada.text_io, ada.integer_text_io;
i,p,k = integer;
ada.text_io.put("saisie d'un nombre ="); ada.integer_text_io.get(i);
ada.text_io.new_line;
p:=2;
while p<=i/2 loop
if i rem p = 0 then
k:=i/p;
ada.integer_text_io.put(k);
ada.text_io.put("est un diviseur de :"); ada.integer_text_io.put(i);
p:=p+1;
else
p:=p+1;
end if;
Contenus similaires
Pas de réponse à votre question ? Demandez !
30 Octobre 2005 16:52:09

salut

bon moi je dis ca p'tet j'dis rien mais si tu reiteres sur les diviseurs que tu as trouve jusqu'a avoir des nombres dont les seuls diviseurs sont lui meme et un... tu dois recupere tes facteurs 1ers nan?
30 Octobre 2005 16:52:46

salut

bon moi je dis ca p'tet j'dis rien mais si tu reiteres sur les diviseurs que tu as trouve jusqu'a avoir des nombres dont les seuls diviseurs sont lui meme et un... tu dois recupere tes facteurs 1ers nan?
30 Octobre 2005 17:15:45

Je ne crois pas. Je viens de m'apercevoir que l'algorithme que j'ai fait pour chch les diviseurs d'un nombre, n'est pas correct.
Je trouve des diviseurs mais pas tous... :-?
30 Octobre 2005 17:29:01

J'ai modifié mon algorithme. Pouvez vous me dire se que vous en pensez?

with ada.text_io, ada.integer_text_io;
i,p,k = integer;
ada.text_io.put("saisie d'un nombre ="); ada.integer_text_io.get(i);
ada.text_io.new_line;
p:=2;
while p<=i/2 loop
if i rem p = 0 then
ada.integer_text_io.put(p);
ada.text_io.put("est un facteur premier de :");
ada.integer_text_io.put(i);
ada.text_io.new_line;
else
p:=p+1;
end if;
end loop;


Merci
31 Octobre 2005 11:30:27

J'ai revu mon programme. Celui ci est il correct?


with ada.text_io, ada.integer_text_io;
i,p,k = integer;
index = integer;
ada.text_io.put("saisie d'un nombre ="); ada.integer_text_io.get(i);
ada.text_io.new_line;
tableau : array(1..i) of integer;
index:=1;
begin
k:=i;
p:=2;
while p<=k/2 loop -- recherche des facteurs premiers
if i rem p = 0 then -- Calcul du reste de la division de i par p
tableau(index):=p;
index:=index+1;
ada.integer_text_io.put(p);
ada.text_io.put("est un facteur premier de :");
ada.integer_text_io.put(i);
ada.text_io.new_line;
k:=k/p;
else
p:=p+1;
end if;
end loop;
-- Affichage du résultat
ada.integer_text_io.put(i);
ada.text_io.put("=");
ada.integer_text_io.put(tableau(1));
for index in tableau'first+1..index-1 loop
ada.text_io.put("*");
ada.integer_text_io.put(tableau(index));
end loop;
ada.text_io.new_line;
end;
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS