Decomposition d'1 nbre entier

Résolu
tangerino -  
tangerino Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   5
 
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   Statut Membre Dernière intervention  
 
bonjour
est ce que vous pouvez plus expliquer?si possible
0
majon > tangerino Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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
majon
 
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   Statut Membre Dernière intervention  
 
après votre coup de main il a apparait cool. merci
0