2329 - prim007: Difference between revisions
mNo edit summary |
No edit summary |
||
Line 36: | Line 36: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <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> | </syntaxhighlight> | ||
==Explicaţie cod== | ==Explicaţie cod== |
Revision as of 17:50, 19 April 2023
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.
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>