Перебор чисел: делители и сумма M
Задание 25 · Билет 2 · ЕГЭ по информатике
Условие
Пусть — сумма различных натуральных делителей целого числа, не считая единицы и самого числа. Напишите программу, которая перебирает целые числа, большие 900000, в порядке возрастания и ищет среди них такие, для которых оканчивается на 5.
Например, для числа 18: .
Обозначения
Пусть — очередное перебираемое число. Пусть — сумма всех собственных делителей числа , кроме 1 и самого . — это не : в складываются только минимальный и максимальный делители (два), а в — все. Пример: у собственные делители 2, 4, 5, 10, поэтому , а .
Попробуйте программой
Необязательно, но удобно: напишите здесь свой код на Python, который найдёт ответ. Если не получится — откройте решение и вставьте готовую программу одной кнопкой.
Решите программой на Python
в браузереНапишите свой код, который найдёт ответ, и нажмите «Выполнить». Горячая клавиша запуска: Ctrl/⌘ + Enter.
Потренируйся перебирать числа: разбери поиск делителей по шагам, а затем напиши программу, которая найдёт первые пять подходящих чисел.
Решение
Решение
открыто шагов: 5 из 5Программа на Python
# R — сумма всех собственных делителей числа, кроме 1 и самого числа.
def R_value(n):
total = 0
for k in range(2, int(n ** 0.5) + 1): # делители до корня
if n % k == 0:
total += k # делитель k
if k != n // k: # парный делитель n / k
total += n // k
return total
found = [] # первые пять подходящих чисел
n = 900001 # перебираем числа больше 900000
while len(found) < 5:
R = R_value(n)
if R % 10 == 5: # R оканчивается на 5
found.append((n, R))
n += 1
for x, R in found: # печатаем число и R
print(x, R) | Число | R |
|---|---|
| 900010 | 720025 |
| 900016 | 978335 |
| 900024 | 1350095 |
| 900036 | 1476155 |
| 900044 | 729555 |
Теория и другие билеты
Разбор с нуля, типовые ошибки, частые вопросы и все билеты задания 25 — на странице задания.