Université PARIS 8 Master MFPI – M2 Algorithmes algébriques o Corrigé n 18 - P. Guillot Exercice 1. Pour y fixé vérifiant 0 < y < n, l’entier x vérifie 0 < x < n et x2 ≡ y 2 mod n si et seulement si x est une racine carrée de y 2 modulo n. Parmi ces racines carrées, celles qui satisfont pgcd(x−y, n) 6= 1, n sont celles pour lesquelles x 6= ±y. Si n n’est pas une puissance d’un nombre premier, alors n s’écrit comme produit de k puissances de nombres premiers qui sont deux à deux premières entre elles. Il existe dans ce cas 2k racines carrées de y 2 dont deux seulement valent ±y. La proportion de 2k − 2 . couples qui satisfont la propriété est donc 2k √ Exercice 2. b nc = 68. 682 − n = −9 = −1 × 32 ; 692 − n = 128 = 27 ; 672 − n = −144 = −1 × 24 × 32 ; On déduit que modulo n, on a (67 × 68)2 = (4 × 9)2 , soit 4 5562 = 362 . pgcd(4 633, 4 5562 − 362 ) = 113, d’où 4 633 = 113 × 41. √ Exercice 3. b nc = 121. (121−4)2 −n = −1 120 = −25 ×5×7 ; (121−3)2 −n = −885 = −3×5×59 ; (121 − 2)2 − n = −648 = −23 × 33 ; (121 − 1)2 − n = −409 ; (121 − 0)2 − n = −168 = −23 × 3 × 7 ; (121 + 1)2 − n = 75 = 3 × 52 ; (121 + 2)2 − n = 320 = 26 × 5 ; (121 + 3)2 − n = 567 = 34 × 7 ; (121+4)2 −n = 816 = 24 ×3×17. Par exemple 1172 ×1212 ×1222 ×1232 ≡ (27 ×3×52 ×7)2 modulo n, soit 4 8372 ≡ 7 9642 modulo n, d’où pgcd(14 809, 7 964 − 4 837) = pgcd(14 809, 3 127) = 59, et 14 809 = 59 × 251. Exercice 4. 1. 2ab − 1 = (2a − 1)(1 + 2a + 22a + · · · + 2(b−1)a ). 2. Le produit des trois premiers membres fournit la relation 8 108 9342 ≡ 2 268 0902 modulo M29 . Le calcul pgcd(M29 , 8 108 934 − 2 268 090) = 486 737. Exercice 5. 1. (83, 13, 1, 5, 4, 2, . . .) ; 83 1 080 1 163 6 895 28 743 64 381 1 , 13 , 14 , 83 , 346 , 775 , . . . 2. Les relations se montrent par récurrence sur k. 3. Comme xk+1 > 0 par construction, x − rk−1 et x − rk sont de signe opposés. De 2. on déduit uk xk+1 +uk−1 uk−1 vk −uk vk−1 uk uk k+1 +uk−1 que pour tout entier k, on a x = uvkk xxk+1 . −vk−1 . Donc x − vk = vk xk+1 +vk−1 − vk = v 2 y+vk vk−1 Comme qk+1 ≤ xk+1 on a vk+1 ≤ vk xk+1 + vk−1 , donc |x − rk | ≤ 1 vk vk+1 . k n+1 n < uvnn , car vn+1 > vn , et vun+1 < uvn+1 , car un < un+1 . D’après 1. l’une de ces deux √ √ √ √ √ un 1 réduites est < N donc vn+1 ≤ N . |yn | = un − N vn un + N vn ≤ vn+1 un + N vn d’après √ √ vn n 3. Donc |yn | ≤ vun+1 + N vn+1 Le premier terme est < N et le second aussi car vn+1 > vn . 4. On a un vn+1 5. Pour N = 6 901, on trouve les suites (un ) = (83, 1 080, 1 163, 6 895, 1 139, 2 272, . . .) (yn ) = (−12, 131, −27, 36, −67, 36, . . .). D’où 832 ≡ −4 × 3 et 1 1632 ≡ −33 modulo 6 901 . Donc (83 × 1 163)2 ≡ (2 × 9)2 . Le calcul pgcd(96 529 − 18, 6 901) = 103 donne la factorisation 6 901 = 103 × 67. Exercice 6. 1. n = 1344 + 6 × 1342 − 134 − 1 2. (X 2 + 3)2 = X 4 + 6x2 + 9 = P (X) − (X + 10) 3. D’après 2, (1342 + 3)2 ≡ 134 + 10 modulo n. Donc 17 9592 ≡ 122 modulo n. On déduit un facteur de n par pgcd(n, 17 959 − 12) = 17 947 et la factorisation n = 17 947 × 17 971. Exercice 4. a n−1 0 1.√a) F (x) = n−1 1 − xan . Elle est strictement positive sur n x + nxn−1 ; la dérivée F (x) = n ] n a, +∞[. √ xn −a n b) x − F (x) = nx a, +∞[. n−1 > 0 sur ] √ √ √ √ n a×a n−1 n n c) F ( a) = n a + n×a = n a 2. D’après 1. b), xk > F (xk )√≥ bF (xk )c = xk+1 . Par√ailleurs, √ xk+1 = bF (xk )c > F (xk ) − 1 donc xk+1 + 1 > F (xk ).√Si xk > b n ac, alors F (xk ) > F (b n ac) = b n ac. Tant que xk > b n ac, la suite est strictement√décroissante. Il existe donc un indice p tel que √ n xp ≤ b ac < xp + 1, ce qui montre que xp = b n ac. Exercice 5. 1. r(18) = 1 ; r(125) = 3, car 125 = 53 ; r(248 832) = 5, car 125 = 248 832. 2. Si r(n) = ks alors n = ar(n) = (as )k et n est une puissance k e. Réciproquement, soit α` e 1 n = pα 1 × · · · × p` la factorisation de n en facteurs premiers. n est une puissance k signifie que k divise tous les αi ; la valeur de r(n) étant le plus grand diviseur commun, k divise r(n). 3. Les exposants de la factorisation de nk sont k × αi . √ pas entière. D’après 3. la 4. r(n) = 1 si et seulement si pour tout entier k, la valeur de k n n’est √ condition sur les entiers k premiers suffit et si n < 2q alors on a toujours q n 6∈ N. Pour déterminer r(n), il suffit donc d’extraire les racines pe de n, à l’aide de l’algorithme de l’exercice, tant que le résultat est entier et successivement pour tous les nombres premiers < log2 (n). La valeur de r(n) est le produit de tous les entiers p pour lesquels l’extraction de la racine pe tombe juste.