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
2325 - prim003
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/2325/prim003 - prim003] ---- == Cerinţa == Anul '''2017''' tocmai s-a încheiat, suntem trişti deoarece era număr prim, însă avem şi o veste bună, anul 2018 este produs de două numere prime, '''2''' şi '''1009'''. Dorel, un adevărat colecţionar de numere prime, şi-a pus întrebarea: “Câte numere dintr-un interval [a,b] se pot scrie ca produs de două numere prime? “. == Date de intrare == Programul citește de la tastatură numărul natural '''t''', iar apoi '''t''' perechi de numere naturale '''a,b''' cu '''a≤b''', 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, pentru fiecare pereche '''a,b''', numărul numerelor din intervalul '''[a,b]''' care se pot scrie ca produs de două numere prime. În caz contrar, se va afișa pe ecran: "Datele nu sunt comform restricțiilor impuse.". == Restricţii şi precizări == * 1 ≤ '''t''' ≤ 100.000 * 1 ≤ '''a, b''' ≤ 1.000.000 == Exemple == ===Exemplul 1=== ; Intrare : 3 : 1 7 : 10 30 : 88 100 ; Ieșire : Datele sunt corecte. : 2 7 4 ===Exemplul 2=== ; Intrare : 5 : 1 10 : 26 40 : 15 90 : 90 111 : 1431 1530 ; Ieșire : Datele sunt corecte. : 4 6 25 6 24 ===Exemplul 3=== ; Intrare : 2 : 314515341535441 412351541241 : 29 49 ; Ieșire : Datele nu sunt comform restricțiilor impuse. <br> == Rezolvare == <syntaxhighlight lang="python" line> #2325 prim003 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 conform_restrictiilor(vector,t): for i in range(0, t*2,2): a = vector[i] b = vector[i+1] if a <= 0 or b <= 0 or a > 1000000 or b > 1000000 or a > b or t > 100000 or t < 1: print("Datele nu sunt conform restricțiilor impuse.") return False print("Datele sunt corecte.") return True if __name__ == '__main__': t = int (input()) vector = list() for _ in range(t): a , b = map(int,input().split()) vector.append(a) vector.append(b) if conform_restrictiilor(vector,t) is True: for i in range(0, t*2,2): a = vector[i] b = vector[i+1] contor = 0 for numere in range(a, b+1): for i in range(2, numere): if este_prim(i) and numere % i == 0 and este_prim(numere // i): contor += 1 break print(contor,end=' ') </syntaxhighlight> ==Explicaţie cod== Acest cod implementează un program care primește ca intrare un număr întreg '''t''' și apoi '''t''' perechi de numere întregi '''a''' și '''b'''. Programul numără câte perechi de numere primesc un număr compus din produsul a două numere prime. Programul verifică dacă datele de intrare sunt conforme cu restricțiile impuse și afișează un mesaj corespunzător dacă nu sunt. Pentru a verifica dacă un număr este prim, programul utilizează funcția '''este_prim'''. Funcția '''conform_restrictiilor''' verifică dacă valorile '''a''' și '''b''' din fiecare pereche de numere întregi sunt cuprinse în intervalul [1, 1 000 000], iar dacă '''t''' se află în intervalul [1, 100 000]. Dacă valorile dintr-o pereche de numere sunt în afara intervalului sau '''a''' este mai mare decât '''b''', funcția va returna False și va afișa un mesaj corespunzător. În funcția '''main''', programul primește datele de intrare sub forma unui număr întreg '''t''' și a unei liste de perechi de numere întregi. Dacă datele sunt conforme cu restricțiile impuse, programul va număra câte perechi de numere primesc un număr compus din produsul a două numere prime folosind un contor și afișează numărul la ieșire.
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