Algorytm Cornacchii

W teorii Cornacchii jest algorytmem rozwiązywania równania , 1 i d oraz m względnie pierwsze . Algorytm został opisany w 1908 roku przez Giuseppe Cornacchię.

Algorytm

Najpierw znajdź być wymienionego jeśli takie nie może być prymitywnego rozwiązania pierwotnego równania. Bez utraty ogólności możemy założyć, że 0 r m / 2 (jeśli nie, to zamień r 0 na m - r 0 , które nadal będzie pierwiastkiem z - d ). Następnie użyj algorytmu Euklidesa , aby znaleźć , i tak dalej; przestań, gdy . Jeśli , } w przeciwnym razie wypróbuj inny pierwiastek z - d , aż zostanie znalezione rozwiązanie lub wszystkie pierwiastki zostaną wyczerpane. W tym przypadku nie ma prymitywnego rozwiązania.

Aby znaleźć nieprymitywne rozwiązania ( x , y ) gdzie gcd( x , y ) = g ≠ 1 , zauważ, że istnienie takiego rozwiązania implikuje, że g 2 dzieli m (i równoważnie, że jeśli m jest wolne od kwadratów , to wszystkie rozwiązania są prymitywne). Zatem powyższy algorytm może być wykorzystany do poszukiwania prymitywnego rozwiązania ( u , v ) dla u 2 + dv 2 = m / g 2 . Jeśli takie rozwiązanie zostanie znalezione, to ( gu , gv ) będzie rozwiązaniem pierwotnego równania.

Przykład

Rozwiąż równanie . Pierwiastek kwadratowy z −6 (mod 103) to 32, a 103 ≡ 7 (mod 32); od i , istnieje rozwiązanie x = 7, y = 3.

  1. ^ Kornacchia, G. (1908). „Su di un metoda per la risoluzione in numeri interi dell”equazione ". Giornale di Matematiche di Battaglini . 46 : 33–90.

Linki zewnętrzne