Este binecunoscut algoritmul de calcul al celui mai mare divizor comun (cmmdc) cu algoritmul lui Euclid prin împărţiri repetate. Conform acestui algoritm cmmdc a două numere naturale nenule şi se calculează păstrând restul împărţirii, şi reluând împărţirea cu vechiul împărţitor şi vechiul rest. Algoritmul se va termina când restul împărţirii devine zero. Cel mai mare divizor comun al celor două numere şi va fi ultimul împărţitor.
Pentru calculul celui mai mare divizor comun al perechii (, ) se vor efectua succesiv împărţirile:
Deîmpărţit | Împărţitor | Rest | Pas |
---|---|---|---|
Pasul | |||
Pasul | |||
Pasul | |||
Pasul | |||
Pasul |
Vom numi un “pas” o operaţie de împărţire ce intervine în calculului cmmdc. Se observă că pentru determinarea cmmdc(, ) = au fost necesari paşi.
Cerinţă
Cunoscând valoarea unui număr natural , realizaţi un program care determină o pereche de numere naturale (, ) mai mici sau egale cu , al căror cmmdc se obţine într-un număr maxim de paşi. Dacă există mai multe perechi (, ) cu această proprietate se va afişa cea minimă. Spunem că perechea (, ) este mai mică decât (, ), dacă sau şi .
Date de intrare
Fişierul text euclid.in
conţine un singur număr natural .
Date de ieșire
Fişierul text euclid.out
va conţine pe prima linie numărul maxim de paşi determinat. A doua linie va conţine un număr natural reprezentând primul număr al perechii minime identificate, iar pe a treia linie se va scrie numărul reprezentând al doilea număr din pereche.
Restricții și precizări
- ;
Exemplul 1
euclid.in
8
euclid.out
5
5
8
Explicație
Numărul maxim de paşi pentru oricare pereche de numere mai mici egale cu este . Perechea (, ) este minimă cu această proprietate.
Exemplul 2
euclid.in
12345678910
euclid.out
48
4807526976
7778742049
Explicație
Numărul maxim de paşi pentru oricare pereche de numere mai mici egale cu este . Perechea (, ) este minimă cu această proprietate.