1479 - Pretios

From Bitnami MediaWiki
Revision as of 08:24, 17 March 2023 by Carla Chereji (talk | contribs)

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>