Предмет: Информатика,
автор: denis566431
Построим последовательность {An} из натуральных чисел, в которой значение а(n) является количеством чисел, меньших n, имеющих большее количество делителей, чем n. Например, элемент a(5) = 1,элемент a(100) = 7, а элемент а(1000) = 49.
Сумма первых 1234 элементов данной последовательности составит …
Ответы
Автор ответа:
4
Для каждого числа подсчитаем в цикле количество его делителей, а затем в другом цикле посчитаем количество чисел, меньших текущего, у которых больше делителей
# python 3
from functools import lru_cache
@lru_cache(maxsize=None)
def number_of_divisors(m):
counter = 0
for i in range(1, m + 1):
if m % i == 0:
counter += 1
return counter
counter = 0
for m in range(2, 1234 + 1):
for k in range(1, m - 1):
if number_of_divisors(k) > number_of_divisors(m):
counter += 1
print(counter)
Ответ: 281184
# python 3
from functools import lru_cache
@lru_cache(maxsize=None)
def number_of_divisors(m):
counter = 0
for i in range(1, m + 1):
if m % i == 0:
counter += 1
return counter
counter = 0
for m in range(2, 1234 + 1):
for k in range(1, m - 1):
if number_of_divisors(k) > number_of_divisors(m):
counter += 1
print(counter)
Ответ: 281184
Похожие вопросы
Предмет: Алгебра,
автор: esuhinin9
Предмет: Українська мова,
автор: margopylypenko2
Предмет: Геометрия,
автор: kast9play
Предмет: Математика,
автор: Аноним