prime

Time limit: 0.25s Memory limit: 24MB Input: prime.in Output: prime.out

Eu sunt fascinată de numerele prime. Consider că numerele prime sunt “scheletul” tuturor numerelor sau “atomii” acestora, pentru că orice număr natural mai mare decât 11 poate fi scris ca un produs de numere prime. Recent am aflat și alte proprietăți interesante legate de numerele prime, de exemplu:

  1. În șirul Fibonacci există o infinitate de numere prime. Vă mai amintiți șirul Fibonacci? 00, 11, 11, 22, 33, 55, 88, 1313, \dots Este șirul în care fiecare termen, exceptând primii doi, se obține ca suma celor doi termeni care îl precedă.
  2. Există numere naturale denumite „economice”. Un număr natural este economic dacă numărul de cifre necesare pentru scrierea sa este mai mare decât numărul de cifre necesare pentru scrierea descompunerii sale în factori primi (adică decât numărul de cifre necesare pentru scrierea factorilor primi și a puterilor acestora). De exemplu 128128 este economic pentru că 128128 se scrie cu 33 cifre, iar descompunerea sa în factori primi se scrie cu două cifre (27)(2^7); 43744374 este economic pentru că se scrie cu 44 cifre, în timp ce descompunerea sa în factori primi se scrie cu 33 cifre (237)(2 \cdot {3^7}). Observați că atunci când un factor prim apare la puterea 11, aceasta nu este necesar să fie scrisă.
  3. Multe numere naturale pot fi scrise ca sumă de două numere prime. Dar nu toate. De exemplu, 121121 nu poate fi scris ca sumă de două numere prime.

Cerinţă

Scrieţi un program care citeşte numărul natural nn şi o secvenţă de nn numere naturale, apoi rezolvă următoarele cerinţe:

  1. determină şi afişează câte dintre numerele din secvenţa dată sunt numere prime din şirul Fibonacci;
  2. determină şi afişează câte dintre numerele din secvenţa dată sunt numere economice;
  3. determină şi afişează câte dintre numerele din secvenţa dată nu pot fi scrise ca sumă de două numere prime.

Date de intrare

Fişierul de intrare prime.in conţine pe prima linie un număr natural cc care reprezintă cerinţa (11, 22 sau 33). Pe a doua linie se află numărul natural nn. Pe a treia linie se află o secvenţă de nn numere naturale separate prin spaţii.

Date de ieșire

Fişierul de ieşire prime.out va conţine o singură linie pe care va fi scris răspunsul la cerinţa din fişierul de intrare.

Restricții și precizări

  • 1<n501 < n \leq 50;
  • Daca c=1c = 1 sau c=3c = 3 numerele naturale din şir sunt mai mari decât 11 şi mai mici decât 107{10}^7;
  • Daca c=2c = 2 numerele naturale din şir sunt mai mari decât 11 şi mai mici decât 1014{10}^{14};
  • Pentru rezolvarea corectă a cerinţei 11 se acordă 2020 de puncte;
  • Pentru rezolvarea corectă a cerinţei 22 se acordă 5050 de puncte;
  • Iar pentru rezolvarea corectă a cerinţei 33 se acordă 3030 de puncte.

Exemplul 1

prime.in

1
5
2 10 13 997 233

prime.out

3

Explicație

Cerinţa este 11. Cele 33 numere prime din şirul Fibonacci existente în secvenţă sunt 22, 1313 şi 233233.

Exemplul 2

prime.in

2
4
128 25 4374 720

prime.out

2

Explicație

Cerinţa este 22. Succesiunea conţine două numere economice (128128 şi 43744374).

Exemplul 3

prime.in

3
5
57 30 121 11 3

prime.out

4

Explicație

Cerinţa este 33. Sunt 44 numere naturale din secvenţă care nu pot fi scrise ca sumă de două numere prime: 5757, 121121, 1111, 33.

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