Numerele naturale nenule x
și y
se numesc prietene dacă au același număr de divizori primi.
Cerința
Fiind date două șiruri de numere naturale, primul cu n
numere, iar al doilea cu m
numere, scrieți un program care rezolvă următoarele cerințe:
1) Determină cel mai mare dintre cele n + m
numere date ce are număr maxim de divizori primi.
2) Determină câte perechi de numere prietene de forma (x, y)
se pot forma, x
fiind din primul șir, iar y
din al doilea șir.
Date de intrare
Fișierul de intrare prietene.in
conţine pe prima linie numărul C reprezentând cerința (1 sau 2), pe a doua linie numerele n și m, pe a treia linie un șir de n numere, iar pe a patra linie un șir de m numere, numerele de pe fiecare linie fiind separate prin câte un spațiu.
Date de ieșire
Dacă C = 1
, atunci pe prima linie a fişierului de ieşire prietene.out
se va scrie numărul ce reprezintă răspunsul la cerința 1.
Dacă C = 2
, atunci pe prima linie a fişierului de ieşire prietene.out
se va scrie numărul ce reprezintă răspunsul la cerința 2.
Restricții și precizări
1 ≤ n,m ≤ 10.000
- Cele două șiruri conțin numere naturale din intervalul
[2, 1.000.000.000]
. - Pentru 30% din teste cerinţa va fi
C = 1
. - 10 puncte se acordă pentru exemplele din enunț.
Exemplul 1:
prietene.in
1 3 4 36 30 5 12 60 13 77
prietene.out
60
Explicație
Pentru fiecare număr din șirurile date scriem numărul de divizori primi: 36 → 2
, 30 → 3
, 5 → 1
, 12 → 2
, 60 → 3
, 13 → 1
, 77 → 2
. Numărul maxim de divizori primi este 3
. Cel mai mare număr din șirurile date care are 3
divizori primi este 60
.
Exemplul 2:
prietene.in
2 4 5 36 30 5 10 12 60 15 77 105
prietene.out
8
Explicație
Sunt 8
perechi de numere prietene: (36, 12)
, (36, 15)
, (36, 77)
, (10, 12)
, (10, 15)
, (10, 77)
, (30, 60)
, (30, 105)
.