Algoritmul Cornacci este un algoritm pentru rezolvarea unei ecuații diofantine , unde , și d și m sunt coprime . Algoritmul a fost descris în 1908 de Giuseppe Cornacci [1] .
Mai întâi găsim orice soluție . Dacă aceasta nu există, ecuația originală nu are soluții primitive. Fără pierderea generalității, putem presupune că (dacă nu este cazul, înlocuiți r 0 cu m - r 0 , care rămâne rădăcina lui - d ). Acum folosim algoritmul lui Euclid pentru a găsi , și așa mai departe. Ne oprim când . Dacă este un număr întreg, atunci soluția este . Altfel, nu există o soluție primitivă.
Pentru a găsi soluții neprimitive ( x , y ) unde gcd( x , y ) = g ≠ 1, rețineți că existența unei astfel de soluții implică faptul că g 2 împarte m (și, în mod echivalent, dacă m este fără pătrat , atunci toate solutiile sunt primitive). Apoi algoritmul de mai sus poate fi folosit pentru a găsi o soluție primitivă ( u , v ) a ecuației . Dacă se găsește o astfel de soluție, atunci ( gu , gv ) va fi soluția ecuației inițiale.
Rezolvăm ecuația . Rădăcina pătrată a lui −6 (mod 103) este 32 și 103 ≡ 7 (mod 32). Deoarece și , există o soluție x = 7, y = 3.
Basilla, Julius Magalona Despre algoritmul lui Cornacchia pentru rezolvarea ecuației diofantine (PDF) (12 mai 2004).
Algoritmi teoretici numerelor | |
---|---|
Teste de simplitate | |
Găsirea numerelor prime | |
Factorizarea | |
Logaritm discret | |
Găsirea GCD | |
Modul de aritmetică | |
Înmulțirea și împărțirea numerelor | |
Calcularea rădăcinii pătrate |