Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Bitnami MediaWiki
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
2329 - prim007
Page
Discussion
English
Read
Edit
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Sursa: [https://www.pbinfo.ro/probleme/2329/prim007 - 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. <br> == 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> ==Explicaţie cod== Functia '''este_prim(n)''' - Verifica daca un numar este prim sau nu. Daca numarul este mai mic decat 2, functia va returna False, altfel, va verifica daca numarul are un divizor in intervalul '''[2, sqrt(n)]'''. Daca il gaseste, functia va returna False, altfel, va returna True. Functia '''prim007(n, vector)''' - Primeste un numar '''n''' si un vector de numere '''vector'''. Functia itereaza prin toate perechile de numere din '''vector''', calculeaza suma lor si verifica daca suma este un numar prim prin apelarea functiei '''este_prim(n)'''. Daca suma este un numar prim, va incrementa un contor. La final, functia va afisa valoarea contorului. Functia '''conform_restrictiilor(n, vector)''' - Verifica daca valorile primite ca input respecta restrictiile impuse de problema. Verifica daca '''n''' este intre 2 si 100000, iar valorile din vector sunt mai mici sau egale cu 10000. Daca valorile respecta restrictiile, functia va returna True, altfel, va afisa un mesaj de eroare si va returna False. In functia '''main''', programul primeste input-ul, verifica daca acesta respecta restrictiile impuse prin apelarea functiei '''conform_restrictiilor(n, vector)''' si, daca este cazul, calculeaza si afiseaza numarul de perechi de numere din '''vector''' a caror suma este un numar prim prin apelarea functiei '''prim007(n, vector)'''.
Summary:
Please note that all contributions to Bitnami MediaWiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Bitnami MediaWiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width