Decomposition d'1 nbre entier

Résolu/Fermé
tangerino - 24 févr. 2008 à 17:25
tangerino Messages postés 4 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 24 février 2008 - 24 févr. 2008 à 18:23
Bonjour,
si vous me permetez, j'ai 1 qst
comment on peut programmer un prg en c qui décompose un nbre entier:
exemple : 12=1*2*2*3
15=1*3*5
2=1*2
1=1
10=1*2*5
merçi d'avance

2 réponses

An@r$isT Messages postés 51 Date d'inscription vendredi 5 octobre 2007 Statut Membre Dernière intervention 8 septembre 2008 5
24 févr. 2008 à 17:31
je pense qu'il doit exister des programmes pour ca mais autrement tu peux utiliser le fait que dans la decomposition en facteur premier, tous les nb premiers qui apparaissent sont inferieurs ou egal a la racine carre du nombre que tu veux decomposer. ainsi tu prends la racine de ton nombre et tu testes les nb premiers inférieurs. pour avoir l'exposant tu fais egalement des tests.
++
0
tangerino Messages postés 4 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 24 février 2008
24 févr. 2008 à 17:52
bonjour
est ce que vous pouvez plus expliquer?si possible
0
majon > tangerino Messages postés 4 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 24 février 2008
24 févr. 2008 à 18:07
Pour construire la table on peut partir de 2
puis on teste si 2 est diviseur de 3 --> non donc 3 est premier
on insère 3 dans la table
puis on teste si 2 est un diviseur de 4 -->oui donc 4 n'est pas premier
on n'insère pas 4 dans la table
puis on teste si 2 est un diviseur de 5 -->non
3 est un diviseur de 5 -->non
(on fait le teste sur tous les éléments du tableau) -->ici on confirme que 5 est premier
on insère 5 dans la table
... ainsi de suite, notre table contient ainsi que des nombres premiers
0
Tu dois disposer au préalable une table avec les nombres premiers sinon tu peux en meme temps utiliser l'algorithme d'Eratostène pour avoir les nombres premiers.
(remplir un tableau jusqu'a racine carré du nombre à décomposer)
Disons c le nombre à décomposer
A partir de la table des nombres premiers (liste des diviseurs potentiels), tu testes si les élements de la table est un diviseur de c
supposons que 3 est un diviseur (c=3*c')
c = c/3
on recommence, 3 est-il encore un diviseur du nouveau c ?
...
Ensuite on passe au diviseur suivant: 5
...
on s'arrete lorsque c=1 ou jusqu'au dernier diviseur possible

(tu peux creer un tableau à 2 dimensions, la deuxième dimension donne le degré dans la décomposition
ex: (2,0)(3,2)(5,1)---> 2^0*3^2*5^1
0
tangerino Messages postés 4 Date d'inscription dimanche 24 février 2008 Statut Membre Dernière intervention 24 février 2008
24 févr. 2008 à 18:23
après votre coup de main il a apparait cool. merci
0