AlgoBox : Puissances et congruences
Tester l'algorithme
Cliquer sur ce bouton pour exécuter l'algorithme :
Résultats
Code de l'algorithme
1
VARIABLES
2
a
EST_DU_TYPE
NOMBRE
3
n
EST_DU_TYPE
NOMBRE
4
r
EST_DU_TYPE
NOMBRE
5
p
EST_DU_TYPE
NOMBRE
6
b
EST_DU_TYPE
NOMBRE
7
a2
EST_DU_TYPE
NOMBRE
8
DEBUT_ALGORITHME
9
LIRE
a
10
LIRE
n
11
p
PREND_LA_VALEUR
1
12
r
PREND_LA_VALEUR
a-floor(a/n)*n
13
a2
PREND_LA_VALEUR
r
14
TANT_QUE
(r!=1 ET p<=n)
FAIRE
15
DEBUT_TANT_QUE
16
b
PREND_LA_VALEUR
r*a2
17
p
PREND_LA_VALEUR
p+1
18
r
PREND_LA_VALEUR
b-floor(b/n)*n
19
SI
(r==1)
ALORS
20
DEBUT_SI
21
AFFICHER
a
22
AFFICHER
"^"
23
AFFICHER
p
24
AFFICHER
" est congru à 1 modulo "
25
AFFICHER
n
26
FIN_SI
27
FIN_TANT_QUE
28
SI
(r!=1)
ALORS
29
DEBUT_SI
30
AFFICHER
"il n'existe pas d'entier p tel que "
31
AFFICHER
a
32
AFFICHER
"^p soit congru à 1 modulo "
33
AFFICHER
n
34
FIN_SI
35
FIN_ALGORITHME
Evolution des variables en mode pas à pas
Evolution des variables en mode pas à pas pour la saisie de a=23 et n=18
(ligne 9) ->
a:23
| n:0 | r:0 | p:0 | b:0 | a2:0
(ligne 10) -> a:23 |
n:18
| r:0 | p:0 | b:0 | a2:0
(ligne 11) -> a:23 | n:18 | r:0 |
p:1
| b:0 | a2:0
(ligne 12) -> a:23 | n:18 |
r:5
| p:1 | b:0 | a2:0
(ligne 13) -> a:23 | n:18 | r:5 | p:1 | b:0 |
a2:5
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE
: condition vérifiée (ligne 15)
(ligne 16) -> a:23 | n:18 | r:5 | p:1 |
b:25
| a2:5
(ligne 17) -> a:23 | n:18 | r:5 |
p:2
| b:25 | a2:5
(ligne 18) -> a:23 | n:18 |
r:7
| p:2 | b:25 | a2:5
La condition n'est pas vérifiée (ligne 19)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE
(ligne 27)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE
: condition vérifiée (ligne 15)
(ligne 16) -> a:23 | n:18 | r:7 | p:2 |
b:35
| a2:5
(ligne 17) -> a:23 | n:18 | r:7 |
p:3
| b:35 | a2:5
(ligne 18) -> a:23 | n:18 |
r:17
| p:3 | b:35 | a2:5
La condition n'est pas vérifiée (ligne 19)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE
(ligne 27)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE
: condition vérifiée (ligne 15)
(ligne 16) -> a:23 | n:18 | r:17 | p:3 |
b:85
| a2:5
(ligne 17) -> a:23 | n:18 | r:17 |
p:4
| b:85 | a2:5
(ligne 18) -> a:23 | n:18 |
r:13
| p:4 | b:85 | a2:5
La condition n'est pas vérifiée (ligne 19)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE
(ligne 27)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE
: condition vérifiée (ligne 15)
(ligne 16) -> a:23 | n:18 | r:13 | p:4 |
b:65
| a2:5
(ligne 17) -> a:23 | n:18 | r:13 |
p:5
| b:65 | a2:5
(ligne 18) -> a:23 | n:18 |
r:11
| p:5 | b:65 | a2:5
La condition n'est pas vérifiée (ligne 19)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE
(ligne 27)
Entrée dans le bloc DEBUT_TANT_QUE/FIN_TANT_QUE
: condition vérifiée (ligne 15)
(ligne 16) -> a:23 | n:18 | r:11 | p:5 |
b:55
| a2:5
(ligne 17) -> a:23 | n:18 | r:11 |
p:6
| b:55 | a2:5
(ligne 18) -> a:23 | n:18 |
r:1
| p:6 | b:55 | a2:5
La condition est vérifiée (ligne 19)
Entrée dans le bloc DEBUT_SI/FIN_SI
(ligne 20)
Sortie du bloc DEBUT_SI/FIN_SI
(ligne 26)
Sortie du bloc DEBUT_TANT_QUE/FIN_TANT_QUE
(ligne 27)
La condition n'est pas vérifiée (ligne 28)
Affichages : 23^6 est congru à 1 modulo 18