0408 - Divizorii Oglinditului
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 de intrare corespund restricțiilor impuse.
- 9
Explicație
Oglinditul lui 63 este 36, care are 9 divizori.
Rezolvare
<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
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.