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
0111 - Nr Fact
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!
== Cerinţa == Să se scrie un program care citește un șir de '''n''' numere naturale şi determină numărul din şir care are număr maxim de factori primi. == Date de intrare == Programul citește de la tastatură numărul '''n''', iar apoi '''n''' numere naturale nenule, separate prin spaţii. == Date de ieşire == Programul afișează pe ecran numărul '''x''', numărul din şir cu număr maxim de factori primi. == Restricții și precizări == *'''0 < n < 1001''' *cele '''n''' numere citite vor fi mai mici decât '''2.000.000.000''' *dacă în şir există mai multe numere cu număr maxim de factori primi, se va afişa cel mai mic dintre acestea == Exemplu == ; Intrare :5 :72 30 12 75 17 ; Ieșire :30 == Explicație == '''30''' are trei factori primi. Celelalte numere au mai puţini factori primi. == Rezolvare == <syntaxhighlight lang="python" line> def numar_factori_primi(n): factori_primi = 0 divizor = 2 while divizor <= n: if n % divizor == 0: factori_primi += 1 while n % divizor == 0: n //= divizor divizor += 1 return factori_primi def validare_date(n, sir_numere): if n < 1 or n > 1000: return False for numar in sir_numere: if numar <= 0 or numar >= 2000000000: return False return True if __name__ == '__main__': n = int(input("Introduceti numarul de numere din sir: ")) sir_numere = list(map(int, input("Introduceti numerele separate prin spatii: ").split())) if validare_date(n, sir_numere): print("\nDatele de intrare corespund restricțiilor impuse.\n") max_factori_primi = 0 numar_max_factori_primi = sir_numere[0] for numar in sir_numere: factori_primi = numar_factori_primi(numar) if factori_primi > max_factori_primi: max_factori_primi = factori_primi numar_max_factori_primi = numar elif factori_primi == max_factori_primi and numar < numar_max_factori_primi: numar_max_factori_primi = numar print(f"Numarul cu cel mai mare numar de factori primi este: {numar_max_factori_primi}") else: print("Datele de intrare nu corespund restricțiilor impuse.") </syntaxhighlight> ==Explicație rezolvare== Acest cod verifică validitatea datelor de intrare și apoi găsește numărul dintr-un șir de numere care are cel mai mare număr de factori primi. Funcția '''numar_factori_primi(n)''' calculează numărul de factori primi ai unui număr, iar funcția '''validare_date(n, sir_numere)''' verifică dacă datele introduse sunt valide. Dacă datele sunt valide, programul găsește numărul din șir care are cel mai mare număr de factori primi și îl afișează.
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