Олімпіади з програмування. О.І. Жмурко, Т.О. Охріменко. Прості задачі. Умань, Візаві, 2020
Розклад на доданки №3.18.1 (с. 233)
# РЕКУРСІЯ
def dod(n, start, suma, k):
k = k + 1
if n == 0: # Базовий випадок
if k > 2:
print(suma[:-1])
else: # Рекурсивний випадок
for j in range(start, n + 1):
dod(n - j, j, suma + str(j) + '+', k)
n = int(input())
dod(n, 1, '', 0)
S(1) = 0.5
Рекурсивна формула:
# РЕКУРСІЯ 2
import sys
sys.setrecursionlimit(2000)
def suma(n):
if n == 1: # Базовий випадок
return 1/2
else:
return suma(n-1)+1/n/(n+1) # Рекурсивний випадок
n=int(input())
print('{:.6f}'.format(suma(n)))
# ФОРМУЛА
n=int(input())
print('{:.6f}'.format(1 - 1 / (n + 1)))
Дуже, дуже ПРОСТА задача :)
Інформатика. Основи алгоритмізації та програмування. 777 задач. Караванова Т. П. (с.107)
Задача #276. Дано натуральне число N. Знайти всі прості числа, менші за N.
Нагадування:
Кожна рекурсивна функція повинна мати базову умову, яка зупиняє рекурсію, інакше функція буде нескінченно викликати саму себе.
Інтерпретатор Python обмежує глибину рекурсії, щоб уникнути нескінченних рекурсій, що призводять до переповнення стека.
За замовчуванням максимальна глибина рекурсії дорівнює 1000. Якщо межа перевищена, то виникає помилка RecursionError.
(перевищення ліміту рекурсивних вкладень)
(переповнення стеку)
import sys
sys.setrecursionlimit(10000)
# РЕКУРСІЯ
import sys
sys.setrecursionlimit(10000)
import math
def proste(n): # Перевірка на простоту
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
def proste_mn(m, n, f):
global flag
if n == m: # Базовий випадок
f = f or proste(n)
if proste(n): print(n)
flag = f
else: # Рекурсивний випадок
f = f or proste(n)
proste_mn(m, n - 1, f)
if proste(n): print(n)
m, n = map(int, input().split())
flag = False
proste_mn(m, n, False)
if not(flag): print('Absent')
# ЦИКЛ
import math
def proste(n): # Перевірка на простоту
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
m, n = map(int, input().split())
flag = False
for i in range(m, n + 1):
if proste(i):
print(i)
flag = 1
if not(flag): print('Absent')