2420 - EasyRow

From Bitnami MediaWiki
Revision as of 20:56, 13 March 2023 by Adina Timiș (talk | contribs)

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 de intrare 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, n + 1):
       if n % i == 0:
           count += 1
   return count

def n_termen(n):

   if n == 1:
       return 1
   else:
       previous_termen = n_termen(n - 1)
       return previous_termen + numar_divizori(n)

def main():

   n = int(input("Introduceti n: "))
   if n >= 1:
       termen = n_termen(n)
       print("Datele de intrare corespund restricțiilor impuse.")
       print(f"Termenul de pe pozitia {n} este {termen}.")
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

if __name__ == "__main__":

   main()
   

</syntaxhighlight>