Задача к ЕГЭ по информатике на тему «рекурсия» №4

Алгоритм вычисления значения функции F (x,k)  , где x,k  — натуральные числа, k ≤ x,k > 1  » class=»math» src=»/images/inform/quest/quest-4325-3.svg» width=»auto»> задан следующими соотношениями: </p>
<p class= F (x,k) = False  , при x = 1,

F (x,k) = False  , если x%k  == 0,

F (x,k) = True  , если       √-- k == ⌊ x⌋ + 1

F (x,k) = F(x,k+ 1)  в остальных случаях

Определите для скольких чисел из отрезка [2  ; 10000  ] функция вернет значение True?

def prime(x, k=2):
    if x == 1:
        return False
    if x % k == 0:
        return False
    if k == int(x ** 0.5) + 1:
        return True
    return prime(x, k + 1)


ans = 0
for i in range(2, 10000 + 1):
    if prime(i):
        ans += 1
print(ans)

Ответ: 1228
Оцените статью
Я решу все!