Задача 25. ЕГЭ по информатике
Пусть M – сумма минимального и максимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение M считается равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 7 800 000, в порядке возрастания и ищет среди них такие, для которых M оканчивается на 63 и кратно общему количеству различных простых делителей числа. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – соответствующие им значения M.
Например, для числа 14 М = 2 + 7 = 9.
Источник: kompege.ru
Программа решения на языке Python
def f(n): d = [] for i in range(1, int(n**0.5) + 1): if n % i == 0: d.append(i) d.append(n // i) return sorted(set(d))
j = 0 k = 7800001 while j != 5: y = f(k) # все делители k a = [t for t in y if t != y[-1] and len(f(t)) == 2] if len(a) == 0: M = 0 else: M = min(a) + max(a) if M % 100 == 63 and M % len(a) == 0: print(k, M) j += 1 k += 1
Вывод:
7800610 780063
7801042 8463
7801312 1863
7801916 8163
7802032 69663
Комментариев нет:
Отправить комментарий