4,7K подписчиков

Проект Эйлер 12: Высокоделимое треугольное число

Задача

Последовательность треугольных чисел образуется путём сложения натуральных чисел. К примеру, 7-е треугольное число равно 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. Первые десять треугольных чисел:

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

Перечислим делители первых семи треугольных чисел:

1: 1
3: 1, 3
6: 1, 2, 3, 6
1
0: 1, 2, 5, 10
15: 1, 3, 5, 15
21: 1, 3, 7, 21
28: 1, 2, 4, 7, 14, 28

Как мы видим, 28 – первое треугольное число, у которого более пяти делителей.

Каково первое треугольное число, у которого более пятисот делителей?

Решение

Если по-простому, треугольное число это сумма натуральных чисел, с которой мы уже умеем обращаться после прошлых выпусков. Сумма от 1 до n равна:

sum = (n * n + n) / 2

Далее, разложение на делители тоже уже было для простых чисел, но его нужно немного модифицировать, чтобы именно сосчитать все делители, а не просто понять, что они есть. К любому делителю i существует парный – если только он не является i. Также каждое число делится на 1 и само себя, что по умолчанию прибавляет 2 к количеству делителей.

Задача Последовательность треугольных чисел образуется путём сложения натуральных чисел. К примеру, 7-е треугольное число равно 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28.

Ссылка на онлайн-компилятор языка C с текстом программы

Вся подборка задач: