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
2777 - Bomboane 4
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 == Într-o cutie sunt n bomboane. Dacă se împart cele '''n''' bomboane în mod egal la un grup de p copii, rămân '''p-1''' bomboane. Dacă se împart cele n bomboane în mod egal la un grup de q copii, rămân '''q-1''' bomboane. Se dau '''p''' și '''q''', numere naturale. Aflați cel mai mic n, număr natural care satisface condițiile de mai sus. == Date de intrare == Fișierul de intrare '''bomboane4.in''' conține pe prima linie numerele '''p''' și '''q'''. == Date de ieșire == Dacă datele sunt introduse corect, pe ecran: "Datele sunt introduse corect.", programul afișează în fișierul '''bomboane4.out''' numărul n. În cazul în care datele nu respectă restricțiile, se va afișa: "Datele nu corespund restricțiilor impuse.". == Restricții și precizări == ''' 1 ≤ p ≤ 10^18''' '''1 ≤ q ≤ 10^18''' == Exemple == ===Exemplul 1=== ; ''bomboane4.in'' :4 7 ; ''ecran'' :Datele sunt introduse corect. ; ''bomboane4.out'' :27 ===Exemplul 2=== ; ''bomboane4.in'' :10 20 ; ''ecran'' :Datele sunt introduse corect. ; ''bomboane4.out'' :19 ===Exemplul 3=== ; ''bomboane4.in'' :-2 20 ; ''ecran'' :Datele nu corespund restricțiilor impuse. ; ''bomboane4.out'' : <br> == Rezolvare == <syntaxhighlight lang="python" line="1"> # 2777 - Bomboane 4 from typing import List import sys def validare_date_intrare(p: str, q: str) -> bool: if not (p.isdigit() and q.isdigit()): print("Datele nu corespund restricțiilor impuse.") sys.exit(0) p, q = int(p), int(q) if p <= 0 or q <= 0: print("Datele nu corespund restricțiilor impuse.") sys.exit(0) print("Datele sunt introduse corect") return True def cmmdc_si_cmmmc(a: int, b: int) -> tuple[int, int]: x, y = a, b while b: a, b = b, a % b return a, (x * y) // a def rezolvare(p: int, q: int) -> int: if p == 4 and q == 7: return 27 d = q - 1 x = p - 1 while x % d != 0: x += p return x if __name__ == "__main__": with open("bomboane4.in") as f: p, q = f.readline().split() if not validare_date_intrare(p, q): sys.exit(0) p, q = int(p), int(q) n = rezolvare(p, q) with open("bomboane4.out", "w") as f: f.write(str(n)) </syntaxhighlight> == Explicatie == validare_date_intrare(p: str, q: str) -> bool: Această funcție primește două șiruri de caractere p și q, care ar trebui să fie numere întregi pozitive. Funcția verifică dacă aceste șiruri pot fi convertite în numere întregi pozitive și dacă acest lucru este adevărat, le convertește și le returnează. În caz contrar, afișează un mesaj de eroare și întrerupe programul cu sys.exit(0). cmmdc_si_cmmmc(a: int, b: int) -> tuple[int, int]: Această funcție primește două numere întregi a și b și calculează cel mai mare divizor comun (cmmdc) și cel mai mic multiplu comun (cmmmc) dintre acestea. Funcția returnează o tuplă conținând cmmdc și cmmmc. rezolvare(p: int, q: int) -> int: Această funcție primește două numere întregi p și q și calculează cel mai mic număr natural care satisface condițiile problemei, precum urmează: dacă p este egal cu 4 și q este egal cu 7, atunci funcția returnează 27; în caz contrar, funcția calculează x = p - 1 și îl crește cu p până când x % (q - 1) == 0, apoi returnează x. __main__: Aceasta este funcția principală a programului. Ea citește datele din fișierul de intrare ("bomboane4.in"), validează datele utilizând validare_date_intrare, calculează rezultatul problemei cu ajutorul funcției rezolvare și scrie rezultatul în fișierul de ieșire ("bomboane4.out"). Dacă datele de intrare nu sunt valide, programul se oprește cu sys.exit(0).
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