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
4226 - Divizibil
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/4226/divizibil] == Cerinţa == Teodora vă roagă sa o ajutați cu intrebările si va recompenseaza cu 100 de puncte. == Date de intrare == Programul citește de la tastatură numărul t ce poate fi '''1''' sau '''2'''. Dacă '''t''' este '''1''' se vor citi trei numere '''n''', '''c1''', '''c2''' cu semnificația din enunț. Dacă '''t''' este '''2''' se vor citi patru numere n, '''c1''', '''c2''', '''c3''' cu semnificația din enunț. == Date de ieșire == Programul va afișa pe ecran numărul '''ct''', reprezentând numărul cerut și mesajul "Datele introduse corespund cerintelor." În caz contrar programul va afișa mesajul "Datele introduse nu corespund cerintelor." == Restricţii şi precizări == * '''t''' poate fi '''1''' sau '''2''' * 1 ⩽ '''n''' ⩽ 1.000.000.000 * 2 ⩽ '''c1, c2, c3''' ⩽ 9 * oricare două cifre sunt prime intre ele == Exemplul 1 == ; Intrare : Introduceți cerința: 1 : Introduceți numărul total: 10 : Introduceți a: 2 : Introduceți b: 3 ; Ieșire : Datele introduse corespund cerintelor. : 3 <br> == Exemplul 2 == ; Intrare : Introduceți cerința: 2 : Introduceți numărul total: 10 : Introduceți a: 3 : Introduceți b: 5 : Introduceți c: 7 ; Ieșire : Datele introduse corespund cerintelor. : 4 <br> == Rezolvare == <syntaxhighlight lang="python" line> #4226 def calculeaza_rezultatul(cerinta, n, a=0, b=0, c=0): rezultat = n if cerinta == 1: rezultat = rezultat - (n // a) - (n // b) rezultat = rezultat + (n // (a * b)) elif cerinta == 2: rezultat = rezultat - (n // a) - (n // b) - (n // c) rezultat = rezultat + (n // (a * b)) + (n // (b * c)) + (n // (a * c)) rezultat = rezultat - (n // (a * b * c)) return rezultat def validate_cerinta(cerinta): if cerinta not in [1, 2]: print("Datele introduse nu corespund cerintelor.") return False return True def validate_n(n): if not 1 <= n <= 1000000000: print("Datele introduse nu corespund cerintelor.") return False return True def validate_variabila(variabila): if not 2 <= variabila <= 9: print("Datele introduse nu corespund cerintelor.") return False return True def validate_a_b_c(a, b, c): if not all([is_prime(i) for i in [a, b, c]]): print("Datele introduse nu corespund cerintelor.") return False return True def is_prime(n): if n < 2: return False for i in range(2, int(n**0.5)+1): if n % i == 0: return False return True if __name__ == '__main__': print("Introduceți cerința:") cerinta = int(input()) if not validate_cerinta(cerinta): exit() print("Introduceți numărul total:") n = int(input()) if not validate_n(n): exit() if cerinta == 1: print("Introduceți a:") a = int(input()) print("Introduceți b:") b = int(input()) if not all([validate_variabila(i) for i in [a, b]]): exit() rezultat = calculeaza_rezultatul(cerinta, n, a, b) elif cerinta == 2: print("Introduceți a:") a = int(input()) print("Introduceți b:") b = int(input()) print("Introduceți c:") c = int(input()) if not all([validate_variabila(i) for i in [a, b, c]]): exit() if not validate_a_b_c(a, b, c): exit() rezultat = calculeaza_rezultatul(cerinta, n, a, b, c) else: rezultat = n print("Datele introduse corespund cerintelor.\n",rezultat) </syntaxhighlight> == Explicație rezolvare == Acesta este un program care primește de la utilizator o cerință și o serie de numere și apoi calculează și afișează un rezultat în funcție de cerință și numerele introduse. Funcția principală a programului este '''calculeaza_rezultatul()''', care primește ca parametri o cerință și una sau trei variabile, a, b și c, în funcție de cerință. În funcție de cerință, programul efectuează diferite operații matematice pe numărul total n și pe variabilele a, b și c și calculează un rezultat. Celelalte funcții din program, cum ar fi '''validate_cerinta()''', '''validate_n()''', '''validate_variabila()''' și '''validate_a_b_c()''', sunt folosite pentru a valida input-ul utilizatorului și a asigura că acesta este corect și se află în limitele admise. Funcția '''is_prime()''' este utilizată pentru a verifica dacă o variabilă este primă. În cele din urmă, blocul '''if __name__ == "__main__"''' primește input-ul de la utilizator, validează datele introduse și apelează funcția '''calculeaza_rezultatul()''' pentru a calcula rezultatul cerut, apoi afișează rezultatul.
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