1. Rappel de la méthode. 2. Remarque. 3. Conséquence : 4. Cas

publicité
C L A S S E
D E
S E C O N D E
A C T I V I T É S
A L G O R I T H M I Q U E .
A L G O B O X
DECOMPOSITION D’UN ENTIER EN PRODUIT DE
FACTEURS PREMIERS.
Par exemple on veut décomposer 126 en produit de facteurs premiers.
1. Rappel de la méthode.
1
2
6
2
6
3
3
2
1
3
7
7
1
Donc : 126 = 21 × 32 × 71
2. Remarque.
Chacun des diviseurs précédents (2, 3 et 7) sont des nombres premiers et ce sont les seuls qui nous intéressent
ici.
Il est évident qu’il y a d’autres diviseurs de 126 : 6, 14, 18,……, 63 mais ces diviseurs ne sont pas premiers !
Remarquons que 63 = 126 ÷ 2 et donc qu’il n’y a pas d’autres diviseurs de 126 entre 63 et 126.
La recherche des diviseurs premiers de 126 se fera entre 2 et 63.
3. Conséquence :
n
n
, ou la partie entière de
lorsque
2
2
n
n
n n’est pas pair (la commande Algobox pour obtenir la partie entière de est floor ( ))
2
2
La recherche des diviseurs premiers d’un nombre entier n se fera entre 2 et
Exemple : si n = 247, alors 247 ÷ 2 = 123,5 dont la partie entière est 123.
Les diviseurs premiers de 247 se chercheront donc entre 2 et 123.
4. Cas général.
4.1
Comment ne mettre en évidence que les diviseurs premiers ?
On commence par diviser par 2 (si le nombre est pair) et on continue de diviser par 2 tant que le nombre obtenu
est pair (le reste est 0)
Ensuite on passe au nombre suivant qui est 3, et on opère de la même façon : on divise par 3 tant que la division
par 3 a pour reste 0 (la commande Algobox correspondante est (n%3 = = 0))
4.2
Et les diviseurs suivants ?
Le diviseur suivant ne sera pas 4 car 4 = 2 2 et que toutes les divisions par 2 ont déjà été effectuées.
Le diviseur suivant sera donc 5, qui est premier.
Et ainsi de suite jusqu’à la partie entière de
n
n
. ( floor ( ) )
2
2
Classe de 2nde
Algobox : décomposition d’un entier en produit de facteurs premiers.
1
www.maths-learning.fr
4.3
Présentation du résultat.
ultat.
Il suffira de demander de faire lee produit
prod des diviseurs premiers affectés de l’exposantt corre
correspondant au nombre
de fois que chacun d’eux est apparu.
paru.
5. Algorithme avec
vec Algobox.
A
5.1
Déclaration de la variable
riable.
n EST_DU_TYPE_NOMBRE
Remarque :
La valeur de n sera affichée
chée à la fin de
l’algorithme, et sa valeur
ur initiale
init
doit
être protégée.
Ainsi on utilise la variable a qui prendra
d’abord la valeur de n initiale et dont la
valeur va varier au cours
rs de
l’algorithme.
diviseur EST_DU_TYPE_NOMBRE
E
nbfacteurs EST_DU_TYPE_NOMB
BRE
a EST_DU_TYPE_NOMBRE
puissance EST_DU_TYPE_NOMBR
RE
5.2
Début de l’algorithme.
•
Demander à lire n
•
Puis afficher sa valeur et afficher
affi
le message « = »
•
Indiquer que a prend laa valeur
valeu n.
•
Indiquer que nbfacteurs prend la valeur 0
(c’est normal on n’a encore fait au
aucun calcul)
Maintenant il nous faut indiquerr que l’on
l
va tester les diviseurs allant de 2 à
n
2
On va donc utiliser l’onglet POUR….
….
•
diviseur va de 2 à la partie entière de
n
2
(revoir la commande si besoin).
Comprenons ce qui va se passer :
Si le reste de la division de a par div
iviseur (on commence ici par 2) est égal à 0, c’est
st que diviseur (donc 2
ici) est un des facteurs recherché.
Alors dans ce cas :
nbfacteurs (qui vaut initialement
ent 0),
0 prend la valeur nbfacteurs + 1
puissance va prendre la valeurr 1 (puisque
(pu
l’on en est au premier facteur qui a cette valeur de diviseur)
a prend la valeur a / diviseur
On obtient quelque chose commee ceci (à compléter)
Ceci étant : TANT_QUE le reste de la division
d
par diviseur est nul, c’est que le nombre
re se divise encore par ce
diviseur, ce qui augmente de 1 la valeur
v
de la puissance à chaque fois.
Quant à a, il va prendre à chaquee fois la valeur a / diviseur
2
C L A S S E
D E
S E C O N D E
A C T I V I T É S
A L G O R I T H M I Q U E .
A L G O B O X
On va donc utiliser l’onglet TANT_Q
NT_QUE et y indiquer toutes ces contraintes. Cela donnera
nnera quelque chose
comme cela :
Il est temps maintenant de préparer
arer la présentation du résultat.
On introduit une condition sur lee nombre
nom
de facteurs.
S’il est supérieur à 1, chacun dess facteurs
facte correspond à un diviseur de n élevé à une puiss
sance (cette puissance
correspondant au nombre d’apparition
aritions de ce diviseur)
Ainsi, en dessous de FIN_TANT_QUE
E on introduit SI (nbfacteurs > 1) ALORS
Cela donnera ceci :
En dessous de DEBUT_SI, on affiche
ffichera le massage « * »
En dessous de FIN_SI on affichera :
•
diviseur
•
«^»
•
puissance
Puis il nous faut envisager le cass où il n’y a pas de facteurs (parce que n est un nombree premier
prem !)
Dans ce cas on affichera n, tout simplement.
simpl
Et cela termine notre algorithme.
Voir le corrigé dans le fichier Algobo
box : facteurs_premiers.
Classe de 2nde
Algobox : décomposition d’un entier en pro
produit de facteurs premiers.
3
ww
www.maths-learning.fr
Téléchargement