1479 - Pretios: Difference between revisions
No edit summary |
No edit summary |
||
Line 29: | Line 29: | ||
def nr_pretioase(): | def nr_pretioase(a, b): | ||
nr_pretioase = 0 | nr_pretioase = 0 | ||
Revision as of 08:24, 17 March 2023
Cerință
Un număr natural în baza 10 se numește prețios dacă numărul de cifre ale sale din baza 2 este număr prim.
Date de intrare
Se dă un interval [a,b].Determinați câte numere prețioase se află în acest interval.
Date de ieșire
Programul afișează pe ecran valoarea cerută.
Restricții de precizări
- 1 ⩽ a, b ⩽ 10000
Exemplul 1
- Intrare
- 1
- 4
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 3
Exemplul 2
- Intrare
- 1
- 100
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 10
Rezolvare ver. 1
<syntaxhighlight lang="python" line="1" start="1"> import math
def validare_date(a, b):
return a.isdigit() and b.isdigit() and 1 <= int(a), int(b) <= 10000
def nr_pretioase(a, b):
nr_pretioase = 0
for numar in range(a, b+1): suma = 0 cifre = str(numar) for cifra in cifre: suma += int(cifra)**2 if math.isqrt(suma)**2 == suma: nr_pretioase += 1
print("Numărul de numere prețioase din intervalul dat este:", nr_pretioase)
if __name__ == '__main__':
a = int(input("Introduceți numărul a: ")) b = int(input("Introduceți numărul b: "))
if validare_date(a, b): a, b = int(a), int(b) print("Datele de intrare corespund restricțiilor impuse.") nr_pretioase(a, b) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>