0408 - Divizorii Oglinditului: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dă un număr natural numit ”'''numar'''”. Să se determine numărul de divizori ai oglinditului lui ”'''numar'''”. == Date de intrare == Programul citește de la tastatură un număr natural ”'''numar'''”. == Date de ieşire == Programul afișează pe ecran '''numar_divizori''' , reprezentând rezultatul cerut. == Restricții și precizări == * numar ∈ Ν * 0 ⩽ numar ⩽ 1.000.000.000 == Exemplu == ; Intrare : 63 ; Ieșire : Datele...
 
No edit summary
 
(One intermediate revision by the same user not shown)
Line 12: Line 12:
: 63
: 63
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele de intrare corespund restricțiilor impuse.
: 9
: 9
== Explicație ==  
== Explicație ==  
Line 44: Line 44:


</syntaxhighlight>
</syntaxhighlight>
== Explicație ==
Funcția validare_date(numar) primește un singur parametru numar și verifică dacă acesta este un număr întreg pozitiv și se află între 0 și 1_000_000_000. Dacă aceste condiții sunt îndeplinite, funcția returnează True, altfel returnează False.
Funcția numar_divizori_oglindit(n) primește un singur parametru n și calculează numărul de divizori ai numărului oglindit al lui n. Mai întâi, se calculează numărul oglindit al lui n și se salvează în variabila oglindit. Apoi, se calculează numărul de divizori ai oglindit prin iterarea prin numerele de la 1 la oglindit și verificarea dacă acestea sunt divizori ai lui oglindit. Numărul de divizori este stocat în variabila numar_divizori. Rezultatul este afișat prin apelul funcției print().
În funcția main(), utilizatorul introduce un număr, care este verificat folosind funcția validare_date(). Dacă numărul respectă restricțiile, se afișează un mesaj corespunzător și se calculează și se afișează numărul de divizori ai numărului oglindit al numărului dat, prin apelul funcției numar_divizori_oglindit(). Dacă numărul nu respectă restricțiile, se afișează un mesaj de eroare.

Latest revision as of 10:04, 25 April 2023

Cerinţa[edit | edit source]

Se dă un număr natural numit ”numar”. Să se determine numărul de divizori ai oglinditului lui ”numar”.

Date de intrare[edit | edit source]

Programul citește de la tastatură un număr natural ”numar”.

Date de ieşire[edit | edit source]

Programul afișează pe ecran numar_divizori , reprezentând rezultatul cerut.

Restricții și precizări[edit | edit source]

  • numar ∈ Ν
  • 0 ⩽ numar ⩽ 1.000.000.000

Exemplu[edit | edit source]

Intrare
63
Ieșire
Datele de intrare corespund restricțiilor impuse.
9

Explicație[edit | edit source]

Oglinditul lui 63 este 36, care are 9 divizori.

Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def validare_date(numar):

   flag = False
   if numar.isdigit():
       if 0 <= int(numar) <= 1_000_000_000:
           flag = True
   return flag


def numar_divizori_oglindit(n):

   oglindit = int(str(n)[::-1])
   numar_divizori = 0
   for i in range(1, oglindit+1):
       if oglindit % i == 0:
           numar_divizori += 1
   print(numar_divizori)


if __name__ == '__main__':

   numar = input()
   if validare_date(numar):
       print("\nDatele de intrare corespund restricțiilor impuse.\n")
       numar_divizori_oglindit(int(numar))
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>

Explicație[edit | edit source]

Funcția validare_date(numar) primește un singur parametru numar și verifică dacă acesta este un număr întreg pozitiv și se află între 0 și 1_000_000_000. Dacă aceste condiții sunt îndeplinite, funcția returnează True, altfel returnează False.

Funcția numar_divizori_oglindit(n) primește un singur parametru n și calculează numărul de divizori ai numărului oglindit al lui n. Mai întâi, se calculează numărul oglindit al lui n și se salvează în variabila oglindit. Apoi, se calculează numărul de divizori ai oglindit prin iterarea prin numerele de la 1 la oglindit și verificarea dacă acestea sunt divizori ai lui oglindit. Numărul de divizori este stocat în variabila numar_divizori. Rezultatul este afișat prin apelul funcției print().

În funcția main(), utilizatorul introduce un număr, care este verificat folosind funcția validare_date(). Dacă numărul respectă restricțiile, se afișează un mesaj corespunzător și se calculează și se afișează numărul de divizori ai numărului oglindit al numărului dat, prin apelul funcției numar_divizori_oglindit(). Dacă numărul nu respectă restricțiile, se afișează un mesaj de eroare.