0408 - Divizorii Oglinditului
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.