Se connecter / S'enregistrer
Votre question

Programme calculant la décomposition en facteurs premiers

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
11 Mars 2006 17:29:46

Salut comme l'indique le titre on m'a demandé de faire une fonction qui détermine la décomposition en facteurs premieers d'un nombre entier.Elle prend en entrée un entier strictement positif et deux pointeurs dans les quels on retourne deux facteurs premiers du nombre donné.
Merci de d'apporter votre contribution.

Autres pages sur : programme calculant decomposition facteurs premiers

11 Mars 2006 21:03:06

deja tu sauvegarde dans une autre variable, mettons _nb, ton entier.
ben tu prends une variable i (initialisée à 2) dans une boucle, tu regarde si i divise ton entier. si oui , alors tu sauvegarde le résultat de la division dans _nb et tu sauvegarde la valeur de i quelque part. si non, alors tu incrémente i.

genre:

  1. proc decomposition(int n, int* fac1, int* fac2)
  2. int _nb = n; int f1, f2; int i=2;
  3. tant que (i< (rac carrée de n))
  4. si _nb modulo i =0 alors
  5. _nb\=i;
  6. fac1=&i;
  7. sinon
  8. i++;
  9. finsi
  10. fintant
  11. fin
11 Mars 2006 22:17:31

Moi je pense que tu devrais calucler dans un premier la racine carré de ton nombre à décomposer pour voir à quel nombre tu dois limiter tes essais. Puis après tu testes la division de tous les nombres premiers inférieurs à l'aide d'une boucle. Exemple :

n = 26
sqrt(25) = 5.099019514
donc tu te limites à 5 et après tu fais n = n/2
puis tu recommences n = n/2 si tu peux et sinon
n = n/3 et ainsi de suite avec 2,3,5 et puis après si le nombre est plus grand grand et bein tu continues ainsi de suite.

Si tu veux tu définis dans des constantes les nombres premiers de 1 à 100 c'est rapide il n'y en a pas beaucoup.

Mais si tu fais la méthode du i de kicoe tu vas avoir un problème si le nombre obtenu est de nouveau divisible par 2 mais pas par toutes les autres valeurs que tu incrémentes, de plus si tu veux décomposer en facteurs premiers il ne faut pas incrémenter car si tu incrémentes tu passeras par 4,6,8 et ainsi de suite qui ne sont pas premiers
Contenus similaires
11 Mars 2006 22:29:45

c'est marrant ca, pakeu ta methode est exactement la meme que la mienne!!?!
dans ma "methode" tu nincrémente que si i ne divise pas le nombre en question... et ca marche tres bien d'ailleur, si tu déroule l'algo avec un exemple, tu verra... et puis bon, je ne donne que les grandes lignes, apres le reste coule de source... enfin moi j'dis ca, j'dis rien

je nai pas l'impression que tu aie bien lu ma réponse ;) 
12 Mars 2006 10:40:01

je dis pas la même chose que toi déjà et puis en plus ta méthode va forcément poser des problèmes si tu incrémentes i à chaque fois que tu divises car tu vas diviser par 4 au lieu de diviser 2 fois par 2. Tu vois ce que je veux dire ou non
12 Mars 2006 10:58:05

alors, pour la troisieme fois: je n'incrémente i que si i nNe divise PAS l'entier... et encore une fois également, tu dis la meme chose ke moi ^^
...tu vois ce que je veux dire ou non? ;-)
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