2420 - EasyRow: Difference between revisions
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... |
Adina Timiș (talk | contribs) No edit summary |
||
| Line 11: | Line 11: | ||
: 5 | : 5 | ||
; Ieșire | ; Ieșire | ||
: Datele | : Datele de intrare corespund restricțiilor impuse. | ||
: 10 | : 10 | ||
<br> | <br> | ||
| Line 28: | Line 28: | ||
def numar_divizori(n): | def numar_divizori(n): | ||
count = 0 | count = 0 | ||
for i in range(1, | for i in range(1, n + 1): | ||
if n % i == 0: | if n % i == 0: | ||
count += 1 | |||
return count | return count | ||
n = | 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> | </syntaxhighlight> | ||
Revision as of 20:56, 13 March 2023
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>
- 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>