2323 - Prim 001

From Bitnami MediaWiki
Revision as of 11:50, 11 April 2023 by Paul Matei (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

Se dă un număr natural n. Să se afle numărul divizorilor naturali ai lui n^n.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieşire

Programul va afișa pe ecran numărul divizorilor lui n^n, modulo 59999.

Restricții și precizări

  • 1 ≤ n ≤ 10^13

Exemplu

Intrare
4
Ieșire
9

Explicație

Numărul 4^4=256 are 9 divizori: 1,2,4,8,16,32,64,128,256.

Rezolvare

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

   if not n.isdigit() or int(n) <= 0:
       return False
   return True

if __name__ == '__main__':

   n = input("Introduceți un număr întreg pozitiv: ")
   if validare_date(n):
       print("\nDatele de intrare corespund restricțiilor impuse.\n")      
       n = int(n)
       cnt, d = 1, 2
       cn = n
       while n > 1:
           p = 0
           while n % d == 0:
               n //= d
               p += 1
           cnt *= (p * cn + 1)
           d += 1
           if d * d > n:
               d = n
           while cnt >= 59999:
               cnt %= 59999
       print(cnt % 59999)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>

Explicație rezolvare

Acest cod verifică dacă datele de intrare sunt corecte și apoi calculează numărul de divizori proprii ai unui număr întreg dat prin parcurgerea tuturor divizorilor primi ai numărului și calcularea puterilor lor. În cele din urmă, se afișează numărul de divizori proprii modulo 59999.