Rechercher
Résultats par :
Recherche avancée
Mots-clés

sleep  reset  

Qui est en ligne ?
Il y a en tout 5 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 5 Invités

Aucun

Voir toute la liste


Partagez
Voir le sujet précédentAller en basVoir le sujet suivant
Posting Freak
Messages : 1188
Date d'inscription : 2004-12-09
Voir le profil de l'utilisateurhttp://langagelinotte.free.fr/

Décomposition en facteurs premiers

le Thu 24 Jun - 14:45
Voici un nouveau livre, il décompose un nombre en facteurs premiers.
Member
Messages : 138
Date d'inscription : 2008-04-09
Voir le profil de l'utilisateur

Décomposition en facteurs premiers

le Thu 24 Jun - 16:01
j'ai l'impression que le livre ne fonctionne pas, tu as du poster une mauvaise version !

j'ai entré 12 et il affiche :
12 = * 2^1 * 3^1

du coup , j'ai réécris le livre (désolé, j'ai pas pu m'empecher :;
): )
il n'y avait pas grand chose à changer :
- il manquuait en fait une ligne pour incrémenter la puissance que j'ai initialisé à 0 au lieu de 1
- et la condition pour l'affichage du signe * ne marchait pas ..

donc voici le nouveau livre :

Code:
Décomposition en facteurs premiers :

Algorithme :

Rôles :

n est un nombre
diviseur est un nombre
nbfacteurs est un nombre valant 0
a est un nombre
puissance est un nombre valant 0
resultat est un texte vide
flag premier est un drapeau valant faux
Actions :

demande n
resultat vaut n + " = "
a vaut n
pour diviseur de 2 à entier (n/2) , lis
tant que a mod diviseur est égal à 0, lis
("a est premier")
flag premier vaut vrai
puissance vaut puissance + 1
nbfacteurs vaut nbfacteurs + 1
a vaut a / diviseur
ferme
si flag premier est vrai alors lis
si nbfacteurs est plus grand que puissance alors resultat vaut resultat + " * "
resultat vaut resultat + diviseur + "^" + puissance
puissance vaut 0
flag premier vaut faux
ferme
ferme
affiche resultat
termine
Posting Freak
Messages : 1188
Date d'inscription : 2004-12-09
Voir le profil de l'utilisateurhttp://langagelinotte.free.fr/

Décomposition en facteurs premiers

le Thu 24 Jun - 17:19
merci ! je vais revoir ça !
Posting Freak
Messages : 1188
Date d'inscription : 2004-12-09
Voir le profil de l'utilisateurhttp://langagelinotte.free.fr/

Décomposition en facteurs premiers

le Thu 24 Jun - 20:32
C'est corrigé :
Code:
Décomposition en facteurs premiers :


Algorithme :

Rôles :

n est un nombre
diviseur est un nombre
nbfacteurs est un nombre valant 0
a est un nombre
puissance est un nombre valant 1
resultat est un texte vide
flag premier est un drapeau valant faux
Actions :

demande n
a vaut n
resultat vaut n + " = "
pour diviseur de 2 à entier (n/2) , lis
tant que a mod diviseur est égal à 0, lis
("a est premier")
flag premier vaut vrai
a vaut a / diviseur
ferme
si flag premier est vrai alors lis
nbfacteurs vaut nbfacteurs + 1
si nbfacteurs est plus grand que 1 alors resultat vaut resultat + " * "
resultat vaut resultat + diviseur + "^" + puissance
puissance vaut 1
flag premier vaut faux
ferme
ferme
affiche resultat
termine
Member
Messages : 52
Date d'inscription : 2009-10-01
Voir le profil de l'utilisateur

Décomposition en facteurs premiers

le Fri 25 Jun - 1:24
Une suggestion pour accélérer le programme : en théorie, dans la boucle, il suffirait que le diviseur aille jusqu'à racine(a), car si a n'est divisible par aucun diviseur inférieur ou égal à sa racine, c'est qu'il est premier...

Sur des nombres avec des gros facteurs, ce serait beaucoup plus rapide, mais cela nécessite d'adapter un peu le mode d'affichage...
Member
Messages : 138
Date d'inscription : 2008-04-09
Voir le profil de l'utilisateur

Décomposition en facteurs premiers

le Fri 25 Jun - 9:33
une autre possibilité aurait été de changer la boucle:
"pour diviseur de 2 à entier (n/2) , lis"
par
"tant que a est différent de 1 , lis
ajoute 1 dans diviseur"

comme ça, pour un grand nombre (exemple 256 = 2^8 )
il suffit d'aller jusqu'à diviseur = 2
alors que si on teste tous les nombres jusqu'à RACINE(256), il faudrait aller jusqu'à DIVISEUR=16.
ou si on teste tous les nombres jusqu'à 256/2 , il faudrait alors aller jusqu'à DIVISEUR=128.
Member
Messages : 52
Date d'inscription : 2009-10-01
Voir le profil de l'utilisateur

Décomposition en facteurs premiers

le Fri 25 Jun - 23:23
Effectivement c'est encore mieux comme ça.
Contenu sponsorisé

Re: Décomposition en facteurs premiers

Voir le sujet précédentRevenir en hautVoir le sujet suivant
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum