1479 - Pretios: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == 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 <br> == E...
 
No edit summary
Line 2: Line 2:
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.
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 ==
== Date de intrare ==
Se dă un interval [a,b].Determinați câte numere prețioase se află în acest interval.
Se dă un interval '''[a,b]'''.Determinați câte numere prețioase se află în acest interval.
== Date de ieșire ==
== Date de ieșire ==
Programul afișează pe ecran valoarea cerută.
Programul afișează pe ecran valoarea cerută.
== Restricții de precizări ==
== Restricții de precizări ==
*1 &les; a, b  &les; 10000
*1 &les; '''a, b''' &les; 10000
== Exemplul 1==
== Exemplul 1==
; Intrare
; Intrare
Line 14: Line 14:
: Datele introduse corespund restricțiilor impuse.
: Datele introduse corespund restricțiilor impuse.
: 3
: 3
<br>
== Exemplul 2 ==
== Exemplul 2 ==
; Intrare
; Intrare
Line 22: Line 21:
: Datele introduse corespund restricțiilor impuse.
: Datele introduse corespund restricțiilor impuse.
: 10
: 10
<br>
== Rezolvare ver. 1 ==
== Rezolvare ==
<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():
    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>

Revision as of 07:35, 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():

   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>