ФИПИ · ЕГЭ · Информатика · Задание 25
49 заданий открытого банка ФИПИ: впишите ответ, при затруднении — подсказка; после ответа — разбор по шагам.
Задания открытого банка ФИПИ «Задание 25. Программа: целочисленная информация» (информатика). Ответ вписывается так же, как в бланк ЕГЭ: число, слово или цифры подряд, без пробелов; если в ответе два числа — через пробел, как в таблице ответа (по строкам).
Неофициальная копия. Условия заданий — из открытого банка заданий ФИПИ (fipi.ru); номер у каждого задания открывает его в банке ФИПИ. Ответы, подсказки, разборы и рисунки подготовлены reknow.ru. Нашли ошибку — нажмите «Сообщить об ошибке» у задания.
Задание 25 ЕГЭ по информатике. Умение создавать собственные программы (10–20 строк) для обработки целочисленной информации. На странице — 49 заданий открытого банка ФИПИ: ответ проверяется сразу, есть подсказка и подробный разбор.
Это несколько заданий из тренажёра, остальные — в тренажёре в начале страницы.
| Пусть M – сумма минимального и максимального простых натуральных делителей целого числа, не считая самого числа. Если таких делителей у числа нет, то значение M считается равным нулю. Напишите программу, которая перебирает целые числа, бо́льшие 5 100 000, в порядке возрастания и ищет среди них такие, для которых M больше 50 000 и является палиндромом, т.е. одинаково читается слева направо и справа налево. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – соответствующие им значения M. Например, для числа 298 М = 2 + 149 = 151. Количество строк в таблице для ответа избыточно.
|
def primes(n):
res, d = [], 2
while d * d <= n:
if n % d == 0:
res.append(d)
while n % d == 0:
n //= d
d += 1
if n > 1: res.append(n)
return res
n, found = 5100000, 0
while found < 5:
n += 1
p = [q for q in primes(n) if q != n]
m = p[0] + p[-1] if p else 0
if m > 50000 and str(m) == str(m)[::-1]:
print(n, m)
found += 1Пусть R – сумма всех различных натуральных делителей целого числа.
Напишите программу, которая перебирает целые числа, бо́льшие 500 000, в порядке возрастания и ищет среди них такие, для которых значение R оканчивается на цифру 6. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – пять соответствующих этим числам значений R.
Например, для числа 20 R = 1 + 2 + 4 + 5 + 10 + 20 = 42.
Количество строк в таблице для ответа избыточно.
def sigma(n):
s, d = 0, 1
while d * d <= n:
if n % d == 0:
s += d
if d != n // d:
s += n // d
d += 1
return s
n, found = 500000, 0
while found < 5:
n += 1
r = sigma(n)
if r % 10 == 6:
print(n, r)
found += 1Мы используем cookies и сервисы аналитики, чтобы понимать, какие темы нужнее и где сайт работает плохо. Продолжая пользоваться сайтом, вы соглашаетесь с этим. Мы используем cookies. Подробнее