AlgoBox : Inverse et congruence
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     b EST_DU_TYPE NOMBRE
4     n EST_DU_TYPE NOMBRE
5     i EST_DU_TYPE NOMBRE
6   DEBUT_ALGORITHME
7     LIRE a
8     LIRE n
9     b PREND_LA_VALEUR 0
10    POUR i ALLANT_DE 1 A n-1
11      DEBUT_POUR
12      //Test pour savoir si a.i est congru à 1 modulo n
13 
     SI (a*i==floor(a*i/n)*n+1) ALORS
14        DEBUT_SI
15        b PREND_LA_VALEUR i
16        FIN_SI
17      FIN_POUR
18    SI (b!=0) ALORS
19      DEBUT_SI
20      AFFICHER a
21      AFFICHER "*"
22      AFFICHER b
23      AFFICHER " est congru à 1 modulo "
24      AFFICHER n
25      FIN_SI
26      SINON
27        DEBUT_SINON
28        AFFICHER "Il n'existe pas d'entier b tel que "
29        AFFICHER a
30        AFFICHER "b soit congru à 1 modulo "
31        AFFICHER n
32        FIN_SINON
33  FIN_ALGORITHME

Evolution des variables en mode pas à pas
Evolution des variables en mode pas à pas pour la saisie de a=3 et b=5.

(ligne 7) -> a:3 | b:0 | n:0 | i:0
(ligne 8) -> a:3 | b:0 | n:5 | i:0
(ligne 9) -> a:3 | b:0 | n:5 | i:0
Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 11)
(ligne 11) -> a:3 | b:0 | n:5 | i:1
La condition n'est pas vérifiée (ligne 13)
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 17)
Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 11)
(ligne 11) -> a:3 | b:0 | n:5 | i:2
La condition est vérifiée (ligne 13)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 14)
(ligne 15) -> a:3 | b:2 | n:5 | i:2
Sortie du bloc DEBUT_SI/FIN_SI (ligne 16)
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 17)
Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 11)
(ligne 11) -> a:3 | b:2 | n:5 | i:3
La condition n'est pas vérifiée (ligne 13)
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 17)
Entrée dans le bloc DEBUT_POUR/FIN_POUR (ligne 11)
(ligne 11) -> a:3 | b:2 | n:5 | i:4
La condition n'est pas vérifiée (ligne 13)
Sortie du bloc DEBUT_POUR/FIN_POUR (ligne 17)
La condition est vérifiée (ligne 18)
Entrée dans le bloc DEBUT_SI/FIN_SI (ligne 19)
Sortie du bloc DEBUT_SI/FIN_SI (ligne 25)

Affichages : 3*2 est congru à 1 modulo 5