2329 - prim007
Sursa: - prim007
Cerinţa
Se dă un șir a1, a2, …, an format din n numere naturale. Determinați numărul de perechi de elemente din șir (ai,aj) cu i < j, care au suma număr prim.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.
Date de ieșire
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele sunt corecte.", iar apoi va afișa pe ecran numărul rezultatelor care sunt numere prime. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.".
Restricţii şi precizări
- 2 ≤ n ≤ 100.000
- elementele șirului vor fi mai mici decât 10.000
Exemple
Exemplul 1
- Intrare
- 3
- 2 5 9
- Ieșire
- Datele sunt corecte.
- 2
Exemplul 2
- Intrare
- 5
- 16 7 90 19 82
- Ieșire
- Datele sunt corecte.
- 5
Exemplul 3
- Intrare
- 2
- 314515341535441 412351541241
- Ieșire
- Datele nu sunt comform restricțiilor impuse.
Rezolvare
<syntaxhighlight lang="python" line>
- 2329 prim007
def este_prim(n):
if n < 2: return False for i in range(2, int(n ** 0.5) + 1): if n % i == 0: return False return True
def prim007(n,vector):
count = 0 for i in range(n): for j in range(i+1, n): if este_prim(vector[i] + vector[j]): count += 1 print(count)
def conform_restrictiilor(n,vctor):
if not 2 <= n <= 100000: print("Datele nu sunt conform restricțiilor impuse.") return False for x in vector: if x > 10000: print("Datele nu sunt conform restricțiilor impuse.") return False print("Datele sunt corecte.") return True
if __name__ == '__main__':
n = int(input()) vector = list(map(int, input().split())) if conform_restrictiilor(n,vector) is True: prim007(n,vector)
</syntaxhighlight>