divizor

Time limit: 0.2s Memory limit: 4MB Input: divizor.in Output: divizor.out

Se consideră un număr natural NN format din mm cifre și toate cele m1m - 1 numere ce se pot forma succesiv pornind de la numărul inițial NN, 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.

N=1203520351035123512051203N = 12035 \rightarrow 20351 \rightarrow 03512 \rightarrow 35120 \rightarrow 51203 (44 combinații). Se taie zeroul de la inceputul lui 0351203512 iar numărul a rămas 35123512.

N=2121121221211212N = 2121 \rightarrow 1212 \rightarrow 2121 \rightarrow 1212 (33 combinații, 33 numere)

Cerință

Scrieți un program care să citească numărul NN, să construiască cele m1m - 1 numere și să determine:

  1. numărul cu cel mai mare număr de divizori, dintre cele mm numere; dacă sunt mai multe astfel de numere printre cele mm, se vor scrie în fișierul de ieșire toate aceste numere.
  2. cel mai mare număr care este divizor propriu pentru cel puțin unul din cele mm numere, iar în cazul în care nu există un astfel de divizor (toate cele mm numere sunt prime), se va afișa valoarea 00.

Date de intrare

Fișierul divizor.in conține o singură linie pe care este scris numărul natural NN.

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 mm numere sau 00, în cazul în care toate cele mm numere sunt numere prime

Restricții și precizări

  • 1N<1 000 0001 \leq N < 1 \ 000 \ 000;
  • 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 00 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 11 ș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: 212212 (inițial), 122122, 221221. 212212 are 66 divizori, 122122 și 221221 au câte 44 divizori. Deci numărul cu cel mai mare număr de divizori este 212212. Cel mai mare divizor propriu este 106106 (divizorul numărului 212212) .

Log in or sign up to be able to send submissions!