1694 - Norocos: Difference between revisions
Sinn Erich (talk | contribs) |
Sinn Erich (talk | contribs) |
||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp] | Sursa: [https://www.pbinfo.ro/probleme/4273/prodpp] | ||
== Cerinţa == | == Cerinţa == | ||
Un număr natural nenul '''m''' se numește '''norocos''' dacă pătratul lui se poate scrie ca sumă de '''m''' numere naturale consecutive. Un număr natural '''m''' se numește '''k-norocos''', dacă este egal cu produsul a exact '''k''' numere prime distincte. Observați că între cele două proprietăți definite nu există nicio legătură | Un număr natural nenul '''m''' se numește '''norocos''' dacă pătratul lui se poate scrie ca sumă de '''m''' numere naturale consecutive. Un număr natural '''m''' se numește '''k-norocos''', dacă este egal cu produsul a exact '''k''' numere prime distincte. Observați că între cele două proprietăți definite nu există nicio legătură. | ||
Dându-se '''k și N''' numere naturale, scrieți un program care să determine: | |||
a) Cel mai mic și cel mai mare număr norocos dintre cele '''N''' numere citite | |||
b) Câte numere '''k-norocoase''' sunt în șirul de '''N''' numere citite | |||
== Date de intrare == | == Date de intrare == |
Revision as of 20:22, 2 April 2023
Sursa: [1]
Cerinţa
Un număr natural nenul m se numește norocos dacă pătratul lui se poate scrie ca sumă de m numere naturale consecutive. Un număr natural m se numește k-norocos, dacă este egal cu produsul a exact k numere prime distincte. Observați că între cele două proprietăți definite nu există nicio legătură.
Dându-se k și N numere naturale, scrieți un program care să determine:
a) Cel mai mic și cel mai mare număr norocos dintre cele N numere citite b) Câte numere k-norocoase sunt în șirul de N numere citite
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."
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
- 0 < n ⩽ 10
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>