2420 - EasyRow

From Bitnami MediaWiki
Revision as of 15:40, 13 March 2023 by Adina Timiș (talk | contribs) (Pagină nouă: == Cerința == Se consideră următorul șir de numere naturale: 1 3 5 8 10 14 16..., în care termenul de pe poziția i (i > 1) este egal cu cel precedent plus numărul de divizori ai lui i. Afișați al n-lea termen. == Date de intrare == Programul citește de la tastatură numărul n. == Date de ieșire == Programul va afișa pe ecran numărul x, reprezentând al n-lea termen din șir. == Restricții și precizări == 1 ≤ n ≤ 100.000 == Exemplul 1 == ; Intrare : 5 ; I...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerința

Se consideră următorul șir de numere naturale: 1 3 5 8 10 14 16..., în care termenul de pe poziția i (i > 1) este egal cu cel precedent plus numărul de divizori ai lui i. Afișați al n-lea termen.

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran numărul x, reprezentând al n-lea termen din șir.

Restricții și precizări

1 ≤ n ≤ 100.000

Exemplul 1

Intrare
5
Ieșire
Datele introduse corespund restricțiilor impuse.
10


Exemplul 2

Intrare
-10
Ieșire
Datele de intrare nu corespund restricțiilor impuse.



Rezolvare

<syntaxhighlight lang="python" line>

  1. 2420 - EasyRow

def numar_divizori(n):

   count = 0
   for i in range(1, int(n**0.5) + 1):
       if n % i == 0:
           if n // i == i:
               count += 1
           else:
               count += 2
   return count

n = int(input())

if n >= 1 and n <= 100000:

   prev = 1
   for i in range(2, n+1):
       numar_x = prev + numar_divizori(i)
       prev = numar_x
   print(x)
   print("Datele de intrare corespund restricțiilor impuse.")

else:

   print("Nu au fost respectate restricțiile impuse.")

</syntaxhighlight>