0056 - Numărare Perechi: Difference between revisions
Dragos1234 (talk | contribs) Pagină nouă: Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp] == Cerinţa == Se dă numărul natural nenul '''n'''. Să se determine produsul primelor '''n''' pătrate perfecte nenule. == Date de intrare == Programul citește de la tastatură numărul '''n'''. == Date de ieșire == Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul '''P''' , reprezentând produsul primelor '''n''' pătrate perfecte nenule, în caz contrar prog... |
Dragos1234 (talk | contribs) |
||
Line 34: | Line 34: | ||
== Rezolvare == | == Rezolvare == | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
# | #0056 | ||
def | def is_valid(number): | ||
return -1000000 < number < 1000000 or number == 0 | |||
def | def get_valid_input(prompt): | ||
""" | |||
Returnează un număr valid introdus de utilizator. | |||
Prompt-ul este afișat la consolă. | |||
return | """ | ||
num = int(input(prompt)) | |||
while not is_valid(num): | |||
print("Valoarea citită nu este validă!") | |||
num = int(input(prompt)) | |||
return num | |||
def | def count_matching_digits(): | ||
""" | |||
Calculează numărul de cifre care se potrivesc în doi numere introduse de utilizator. | |||
""" | |||
num1 = get_valid_input("Introduceți primul număr: ") | |||
num2 = get_valid_input("Introduceți al doilea număr: ") | |||
if num1 < 0: | |||
num1 = -num1 | |||
if num2 < 0: | |||
num2 = -num2 | |||
count = 0 | |||
while num2: | |||
if num1 % 10 == num2 % 10: | |||
count += 1 | |||
num1 = num2 | |||
num2 = get_valid_input("Introduceți următorul număr: ") | |||
if num2 < 0: | |||
num2 = -num2 | |||
print(f"Numărul de cifre care se potrivesc este: {count}") | |||
def main(): | |||
count_matching_digits() | |||
main() | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 10:05, 9 April 2023
Sursa: [1]
Cerinţa
Se dă numărul natural nenul n. Să se determine produsul primelor n pătrate perfecte nenule.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran, mesajul "Datele introduse corespund cerințelor" și pe o linie nouă numărul P , reprezentând produsul primelor n pătrate perfecte nenule, în caz contrar programul va afișa pe o linie noua mesajul "Datele introduse nu corespund cerintelor."
Restricţii şi precizări
- 0 < n ⩽ 10
Exemplul 1
- Intrare
- 4
- Ieșire
- Datele corespund cerințelor.
- 576
Exemplul 2
- Intrare
- 16
- Ieșire
- Datele introduse nu corespund cerințelor.
Exemplul 3
- Intrare
- 7
- Ieșire
- Datele corespund cerințelor.
- 25401600
Rezolvare
<syntaxhighlight lang="python" line>
- 0056
def is_valid(number):
return -1000000 < number < 1000000 or number == 0
def get_valid_input(prompt):
""" Returnează un număr valid introdus de utilizator. Prompt-ul este afișat la consolă. """ num = int(input(prompt)) while not is_valid(num): print("Valoarea citită nu este validă!") num = int(input(prompt)) return num
def count_matching_digits():
""" Calculează numărul de cifre care se potrivesc în doi numere introduse de utilizator. """ num1 = get_valid_input("Introduceți primul număr: ") num2 = get_valid_input("Introduceți al doilea număr: ")
if num1 < 0: num1 = -num1 if num2 < 0: num2 = -num2
count = 0 while num2: if num1 % 10 == num2 % 10: count += 1 num1 = num2 num2 = get_valid_input("Introduceți următorul număr: ") if num2 < 0: num2 = -num2
print(f"Numărul de cifre care se potrivesc este: {count}")
def main():
count_matching_digits()
main()
</syntaxhighlight>