3074 - Numeres: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
Line 14: | Line 14: | ||
== Restricţii şi precizări == | == Restricţii şi precizări == | ||
1 ≤ '''n''' ≤ 7 | |||
1 ≤ '''s''' ≤ 63 | |||
== Exemplul 1 == | == Exemplul 1 == |
Revision as of 23:31, 2 April 2023
Sursa: [1]
Cerinţa
Scrieți un program care să afișeze, în ordine crescătoare, toate numerele naturale formate din câte n cifre și care au suma cifrelor egală cu s, precum și câte astfel de numere există.
Date de intrare
Programul citește de la tastatură numerele naturale n și s, separate prin spații.
Date de ieșire
Programul va afișa numerele determinate pe prima linie a ecranului, în ordine crescătoare, separate prin câte un spațiu. Pe a doua linie va afișa numărul acestor numere. Dacă nu există astfel de numere, va afișa valoarea 0 pe prima linie a ecranului.
Dacă datele sunt introduse corect, programul va rula.
În cazul în care datele nu respectă restricțiile, se va afișa pe ecran: "Datele nu corespund restricțiilor impuse.".
Restricţii şi precizări
1 ≤ n ≤ 7 1 ≤ s ≤ 63
Exemplul 1
- Intrare
- 4
- Ieșire
- Datele corespund cerințelor.
- 576
Rezolvare
<syntaxhighlight lang="python" line>
- 4273
def patrate_perfecte(n):
patrate = [] i = 1 while len(patrate) < n: patrat = i * i patrate.append(patrat) i += 1 return patrate
def calculeaza(numbers):
product = 1 for number in numbers: product *= number return product
def validare_numar(n):
if n < 1 or n > 10: return False return True
if __name__ == '__main__':
n = int(input("Introduceți numărul n: ")) if not validare_numar(n): print("Datele introduse nu corespund cerintelor.") else: squares = patrate_perfecte(n) product = calculeaza(squares) print("Datele introduse corespund cerintelor.") print(product)
</syntaxhighlight>