0018 - Numarul de Divizori: Difference between revisions
Pagină nouă: == Cerinţa == Se dă un număr natural numit ”'''numar'''”. Calculaţi numărul de divizori ai acestui numar. == Date de intrare == Fişierul de intrare '''nrdiv.in''' conţine pe prima linie numărul '''numar''' == Date de ieşire == Fişierul de ieşire '''nrdiv.out''' va conţine pe prima linie numărul '''numar_divizori''', reprezentând numărul de divizori ai lui '''numar'''. == Restricții și precizări == * numar ∈ Ν * 0 ⩽ numar ⩽ 100.000 == Exem... |
|||
Line 24: | Line 24: | ||
flag = True | flag = True | ||
return flag | return flag | ||
def nr_divizori(n): | def nr_divizori(n): | ||
Line 29: | Line 30: | ||
for i in range(1, n + 1): | for i in range(1, n + 1): | ||
if n % i == 0: | if n % i == 0: | ||
numar_divizori += 1 | |||
return numar_divizori | |||
Line 37: | Line 38: | ||
if validare_date(numar): | if validare_date(numar): | ||
print("\nDatele de intrare corespund restricțiilor impuse.\n") | print("\nDatele de intrare corespund restricțiilor impuse.\n") | ||
with open('nrdiv.in', 'r') as f: | |||
n = int(f.readline()) | |||
with open('nrdiv.out', 'w') as f: | |||
f.write(str(nr_divizori(n))) | |||
else: | else: | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 19:21, 18 March 2023
Cerinţa
Se dă un număr natural numit ”numar”. Calculaţi numărul de divizori ai acestui numar.
Date de intrare
Fişierul de intrare nrdiv.in conţine pe prima linie numărul numar
Date de ieşire
Fişierul de ieşire nrdiv.out va conţine pe prima linie numărul numar_divizori, reprezentând numărul de divizori ai lui numar.
Restricții și precizări
- numar ∈ Ν
- 0 ⩽ numar ⩽ 100.000
Exemplu
- Intrare
- 6
- Ieșire
- Datele introduse corespund restricțiilor impuse.
- 4
Explicație
Pentru numărul 6 avem divizorii 1, 2, 3, 6 deci numărul acestora este egal cu 4.
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 nr_divizori(n):
numar_divizori = 0 for i in range(1, n + 1): if n % i == 0: numar_divizori += 1 return numar_divizori
if __name__ == '__main__':
numar = input() if validare_date(numar): print("\nDatele de intrare corespund restricțiilor impuse.\n") with open('nrdiv.in', 'r') as f: n = int(f.readline()) with open('nrdiv.out', 'w') as f: f.write(str(nr_divizori(n))) else: print("Datele de intrare nu corespund restricțiilor impuse.")
</syntaxhighlight>