Se consideră un număr natural format din cifre și toate cele numere ce se pot forma succesiv pornind de la numărul inițial , prin mutarea celei mai semnificative cifre a combinației curente la sfârșitul acesteia, după cum se poate observa din exemplele de mai jos.
( combinații). Se taie zeroul de la inceputul lui iar numărul a rămas .
( combinații, numere)
Cerință
Scrieți un program care să citească numărul , să construiască cele numere și să determine:
- numărul cu cel mai mare număr de divizori, dintre cele numere; dacă sunt mai multe astfel de numere printre cele , se vor scrie în fișierul de ieșire toate aceste numere.
- cel mai mare număr care este divizor propriu pentru cel puțin unul din cele numere, iar în cazul în care nu există un astfel de divizor (toate cele numere sunt prime), se va afișa valoarea .
Date de intrare
Fișierul divizor.in
conține o singură linie pe care este scris numărul natural .
Date de ieșire
Fișierul divizor.out
va conține:
- pe prima linie numărul sau numerele cu număr maxim de divizori, despărțite prin câte un spațiu
- pe a doua linie, un număr natural reprezentând cel mai mare număr care este divizor propriu pentru cel puțin unul din cele numere sau , în cazul în care toate cele numere sunt numere prime
Restricții și precizări
- ;
- Conform procedurii de formare a combinațiilor, se poate întâmpla să se obțină de mai multe ori același număr. Se vor considera toate combinațiile posibile, chiar dacă există numere care se repetă.
- Cifra scrisă în fața unui număr se consideră neglijabilă și nu se cere afișată în rezultatul final.
- La toate cerințele se ia în considerare și numărul inițial.
- Divizorul propriu al unui număr este un divizor diferit de și de număr.
- Se acordă punctaje parțiale: cerința a) 60% din punctaj, cerința b) 40% din punctaj
Exemplu
divizor.in
212
divizor.out
212
106
Explicație
Numerele obținute: (inițial), , . are divizori, și au câte divizori. Deci numărul cu cel mai mare număr de divizori este . Cel mai mare divizor propriu este (divizorul numărului ) .