Задание 25. Программирование. Обработка целочисленной информации. ЕГЭ 2026 по информатике

За это задание ты можешь получить 1 балл. На решение дается около 20 минут. Уровень сложности: высокий.
Средний процент выполнения: 10%
Ответом к заданию 25 по информатике может быть развернутый ответ (полная запись решения с обоснованием выполненных действий).

Алгоритм решения задания 25:

  1. Прочитай условие и определи входные данные (количество чисел, диапазон, признак окончания).
  2. Уточни, что требуется получить: сумму, количество, максимум/минимум, проверку условия, формирование результата.
  3. Выбери необходимые переменные: счётчики, накопители, текущий элемент.
  4. Запиши ввод исходных данных и инициализацию переменных.
  5. Организуй цикл обработки целочисленной последовательности.
  6. Внутри цикла выполни проверку условий и обновление переменных.
  7. После завершения цикла выведи требуемый результат.
  8. Проверь программу на простых тестах вручную.
  9. Запиши окончательный вариант программы в требуемом формате.

Задачи для практики

Задача 1

.

Пусть для целого числа N > 4 000 000 определим величину S как сумму наименьшего и наибольшего простых делителей числа, не считая самого числа. Если простых делителей у числа нет, полагаем S = 0.

Необходимо перебрать целые числа, начиная с 4 000 001, в порядке возрастания, и найти среди них числа, для которых:

  • S > 50 000
  • S является палиндромом (одинаково читается слева направо и справа налево)

Выведите первые пять таких чисел в порядке возрастания, а рядом с ними — соответствующие значения S в таблице.

Пример:
Для числа 2310: наименьший простой делитель — 2, наибольший — 11, тогда S = 2 + 11 = 13.

Решение
Простые делители и палиндромы – Python

Код решения (Python)

def check_prostoe(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

def del_prost(n):
    delit = []
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            if check_prostoe(i):
                delit.append(i)
            j = n // i
            if j != i and check_prostoe(j):
                delit.append(j)
    return delit

def is_palindrome(number):
    return str(number) == str(number)[::-1]

found = 0
number = 4_000_001
results = []

while found < 5:
    delit = del_prost(number)
    if delit:
        S = min(delit) + max(delit)
        if S > 50000 and is_palindrome(S):
            results.append((number, S))
            found += 1
    number += 1

for n, S in results:
    print(n, S)

ОТВЕТ:

4000794 95259
4002106 117711
4002110 57175
4002579 63536
4003996 1001001

Ответ:
Показать решение
Бесплатный интенсив

Задача 2

На Северном полюсе, в мастерской Деда Мороза, в преддверии Нового года, помощники проверяют список домов, куда нужно доставить подарки.

Каждый дом имеет свой номер, но Дед Мороз использует особую магическую маску для проверки:

  • Символ «?» означает, что Дед Мороз заглянет только в один дом с любой цифрой на этом месте.
  • Символ «*» означает, что Дед Мороз посетит все дома с любой последовательностью цифр, включая пустую.

Сегодня Дед Мороз хочет найти все дома, номера которых соответствуют маске 3?12?14*5, и которые волшебным образом делятся на 1917 без остатка.

Помощники создают список всех подходящих номеров домов и делят их на 1917, чтобы убедиться, что подарки попадут точно в нужные дома.

Задача:

  • Найти все натуральные числа, не превышающие 1010, которые соответствуют маске 3?12?14*5.
  • Отобрать среди них только те, которые делятся на 1917 без остатка.
  • В ответе составить таблицу, где первый столбец — это найденные числа в порядке возрастания, а второй столбец — результаты деления этих чисел на 1917.

🎄 Новогодняя магия: Каждый найденный номер дома — как сверкающая гирлянда на ёлке: он точно подходит под волшебную маску Деда Мороза и гарантирует, что подарки попадут в нужные руки.

Решение

Напишем простое решение на Python:

from fnmatch import fnmatch

for i in range(0, 10**10+1, 1917):
    if fnmatch(str(i), '3?12?14*5'):
        print(i, i // 1917)

Получим ответ:
351261495 183235
3212614035 1675855
3412614645 1780185
3712414275 1936575
3912414885 2040905

Ответ:
Показать решение
Бесплатный интенсив

Задача 3

Напишите программу, которая перебирает целые числа, большие 600 000, в порядке возрастания и ищет среди них такие числа, что среди делителей этого числа, есть делитель оканчивающийся на 6, не считая само число и делитель равный 6 . Вывести первые 5 найденных чисел.

Формат вывода: для каждого из 5 таких найденных чисел запишите их в порядке возрастания через пробел.

Решение

Приведём решение номера на языке программирования Python. Можно решить стандартным путём:

def m(n):
    for i in range(2, n):
        if n % i == 0:
            if i != 6 and i % 10 == 6:
                return True
    return False


number = 600_000
k = 0
while k < 5:
    number += 1
    if m(number):
        print(number, end=" ")
        k += 1
Ответ: 600002 600006 600008 600012 600016
Показать решение
Бесплатный интенсив

Задача 4

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
1) символ «?» означает ровно одну произвольную цифру;
2) символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задаватьи пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих 108, найдите все числа, соответствующие маске 1?3?1*5?6, делящиеся на 629 без остатка.
В ответе запишите сумму результатов от деления найденных чисел на 629.
Количество строк в таблице для ответа избыточно.

Решение
from fnmatch import fnmatch

s = 0
for x in range(0, 10 ** 8, 629):
    if fnmatch(str(x), '1?3?1*5?6'):
        s += x // 629
print(s)
Ответ: 53598
Показать решение
Бесплатный интенсив

Задача 5

Пусть M – количество натуральных различных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю.

Напишите программу, которая перебирает целые числа, большие 124 987, в порядке возрастания и ищет среди них такие, для которых значение M равно 3. Вывести первые 3 найденных чисел.

Формат вывода: для каждого из 3 таких найденных чисел запишите их в порядке возрастания через пробел.

Решение

Приведём решение номера на языке программирования Python. Можно решить стандартным путём:

def m(n):
    divisors = []
    for i in range(2, n):
        if n % i == 0:
            divisors.append(i)
    return len(divisors)


number = 124_987
k = 0
while k < 3:
    number += 1
    if m(number) == 3:
        print(number, end=" ")
        k += 1

Но такой способ имеет достаточно долгое решение. Можно вспомнить, что нечётное количество делителей есть только у чисел из которых можно вычесть квадратный корень. Тогда задачу можно решить гораздо быстрее:

def m(n):
    divisors = []
    for i in range(2, n):
        if n % i == 0:
            divisors.append(i)
    return len(divisors)


number = 124_609
z = 707
k = 0
while k < 3:
    number += z
    z += 2
    if m(number) == 3:
        print(number, end=" ")
        k += 1

Но и этот способ можно ускорить, если знать, что до корня из числа должен встретиться ровно 1 корень

def m(n):
    divisors = []
    for i in range(2, int(n ** 0.5)):
        if n % i == 0:
            divisors.append(i)
    return len(divisors)


number = 124_609
z = 707
k = 0
while k < 3:
    number += z
    z += 2
    if m(number) == 1:
        print(number, end=" ")
        k += 1

Ещё один способ заключается в том, чтобы перебирать не квадраты чисел, а числа до возведения в квадрат. Таким образом вычисляем корень из 124 987 и двигаемся от числа 354

def m(n):
    divisors = []
    for i in range(2, int(n ** 0.5)):
        if n % i == 0:
            divisors.append(i)
    return len(divisors)


number = 354
k = 0
while k < 3:
    new_number = number ** 2
    if m(new_number) == 1:
        print(new_number, end=" ")
        k += 1
    number += 1
Ответ: 130321 279841 707281
Показать решение
Бесплатный интенсив

Задача 6

Пусть M – сумма минимального и максимального натуральных различных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю.

Напишите программу, которая перебирает целые числа, большие 452 023, в порядке возрастания и ищет среди них такие, для которых значение M при делении на 7 даёт в остатке 4. Вывести первые 3 найденных чисел.

Формат вывода: для каждого из 3 таких найденных чисел запишите их в порядке возрастания через пробел.

Решение

Приведём решение номера на языке программирования Python

def m(n):
    divisors = []
    for i in range(2, n):
        if n % i == 0:
            divisors.append(i)
    if len(divisors) > 1:
        return min(divisors) + max(divisors)
    return 0


number = 452_023
k = 0
while k < 5:
    number += 1
    if m(number) % 7 == 4:
        print(number)
        k += 1

Ответ: 452036 452049 452050

Ответ: 452036 452049 452050
Показать решение
Бесплатный интенсив

Задача 7

ДЛЯ 2022

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

— символ «?» означает ровно одну произвольную цифру;

— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательноcть.

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске 1234?57??, делящиеся на число 146 без остатка.

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им частные от деления этих чисел на 146.

Решение

Для решение этого номера необходимо написать программу, которая могла бы проверить все такие числа

for i in range(10):
    for j in range(10):
        for k in range(10):
            x = int(f'1234{i}57{j}{k}')
            if x % 146 == 0:
                print(x, x // 146)

Ответ:

123405770 845245
123425772 845382
123435700 845450
123445774 845519
123455702 845587
123465776 845656
123475704 845724
123485778 845793
123495706 845861
Ответ:
Показать решение
Бесплатный интенсив

Задача 8

Назовём маской числа последовательность состоящую из цифр и символ «*» и «?»:
— символ «?» означает ровно одну пропущенную цифру;
— символ «*» означает любую последовательность цифр, включая пустую.

Среди натуральных чисел, больших 106, найдите пять чисел, соответствующие маске 123*4*9 и делящиеся на 13 без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им частные от деления на 13.

Решение

Запишем решение на языке Python:

k = 0
number = 10 ** 6 + 1
while k < 5:
    s =str(number)
    if s[:3] == '123' and s[-1] == '9' and '4' in s[3:-1] and number % 13 == 0:
        k += 1
        print(number, number // 13)
    number += 1

1230489 94653
1230749 94673
1232049 94773
1232439 94803
1233349 94873

Ответ:
Показать решение
Бесплатный интенсив

Задача 9

Назовём маской числа последовательность состоящую из цифр и символ «*» и «?»:
— символ «?» означает ровно одну пропущенную цифру;
— символ «*» означает любую последовательность цифр, включая пустую.

Среди натуральных чисел, больших 106, найдите пять чисел, соответствующие маске 123*4?*9 и делящиеся на 13 без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им частные от деления на 13.

Решение

Запишем решение на языке Python:

k = 0
number = 10 ** 6 + 1
while k < 5:
    s =str(number)
    if s[:3] == '123' and s[-1] == '9' and '4' in s[3:-2] and number % 13 == 0:
        k += 1
        print(number, number // 13)
    number += 1

1230489 94653
1232439 94803
1233479 94883
1234129 94933
1234259 94943

Ответ:
Показать решение
Бесплатный интенсив

Задача 10

РЕШЕНИЕ БЕЗ ОТВЕТА НЕ ПРИНИМАЕТСЯ, В ПРОТИВНОМ СЛУЧАЕ РАБОТА БУДЕТ АННУЛИРОВАНА

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

— символ «?» означает ровно одну произвольную цифру;

— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательноcть.

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске 123*4*5*, делящиеся на число 123456 без остатка.

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им частные от деления этих чисел на 123456.

Решение

Задачу можно решить несколькими способами. Например, можно формировать число, перебирать все варианты, либо рассмотреть задачу с точки зрения теории чисел. Алгоритм ниже основан на переборе всех чисел. Чтобы он был возможен, отсечём первые 3 разряда, потому что они константны. "123" будем "приклеивать" позже". Маска *4*5 говорит о том, что должна найтись 4, которая раньше 5. Причём случай "5451" тоже подходит под такую маску. Поэтому будем искать индекс первой четвёрки и последней пятерки. Индекс четвёрки должен идти раньше индекса пятёрки.

for num in range(1, 1000000):
    num = str(num)
    ind4 = ind5 = -1
    for i in range(len(num)):
        if num[i] == '4':
            ind4 = i
            break
    for i in range(len(num)):
        if num[i] == '5':
            ind5 = i
    if ind4 != -1 and ind5 != -1 and ind4 < ind5:
        num = int('123' + num)
        if num % 123456 == 0:
            print(num, num // 123456)

Ответ:

123456 1

1234560 10

12345600 100

123456000 1000

123579456 1001

Ответ:
Показать решение
Бесплатный интенсив

Задача 11

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

— символ «?» означает ровно одну произвольную цифру;

— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательноcть.

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске 352*6?5*, являющиеся полными квадратами.

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им квадратные корни.

Решение
for num in range(1, 1000000):
    num = str(num)
    fl = False
    for i in range(len(num)-2):
        if num[i] == '6' and num[i+2] == '5':
            fl = True
    if fl:
        num = int('352'+num)
        if int(num ** 0.5) ** 2 == num:
            print(num, num ** 0.5)

Или можно другое решение, на основе срезов:

for i in range(352605, 10 ** 9):
    if round(i ** 0.5) ** 2 == i:
        s = str(i)
        if s[:3] == '352' and '6' in s[3:-2] and '5' in s[4:] and s.index('6') + 2 == s.rindex('5'):
            print(i, round(i ** 0.5))

Хотите самое быстрое решение? Вы замечали, что все соседние полные квадраты отличаются друг от друга на нечётное число, при этом это строго возрастающая последовательность нечётных числе. Например, нам даны полные квадраты 1, 4, 9, 16, 25, 36, 49. Разность между ними будет: 3, 5, 7, 9, 11, 13. Правда интересная закономерность? На её основе можно сделать решение:

from fnmatch import fnmatch

z = 1189
i = 352836
while i <= 10 ** 9:
    if fnmatch(str(i), '352*6?5*'):
        print(i, i ** 0.5)
    i += z
    z += 2

Ответ:

352500625 18775

352763524 18782

Ответ:
Показать решение
Бесплатный интенсив

Задача 12

Дан числовой отрезок натуральных чисел: [1000, 5000]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно два чётных делителя, не считая самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший чётный делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Напишем код, где в основной программе будет перебираться диапазон наших числах, а проверка условия будет осуществляться в отдельной функции. Пример программы на Python:

def check_del(x):

max_del = 0

count = 0

for i in range(2, x//2+1, 2):

if x % i == 0:

count += 1

max_del = i

if count > 2:

return -1

if count == 2:

return max_del

else:

return -1

for x in range(1000, 5000 + 1):

num = check_del(x)

if num != -1:

print(x, num)

Ответ:

1058 46

1682 58

1922 62

2738 74

3362 82

3698 86

4418 94

Ответ:
Показать решение
Бесплатный интенсив

Задача 13

Дан числовой отрезок натуральных чисел: [581, 612]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно четыре делителя, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Напишем код, где в основной программе будет перебираться диапазон наших числах, а проверка условия будет осуществляться в отдельной функции. Пример программы на Python:

def check_del(x):

max_del = 0

count = 0

for i in range(2, x//2+1):

if x % i == 0:

count += 1

max_del = i

if count > 4:

return -1

if count == 4:

return max_del

else:

return -1

for x in range(581, 612 + 1):

num = check_del(x)

if num != -1:

print(x, num)

Ответ:

596 298

603 201

604 302

605 121

Ответ:
Показать решение
Бесплатный интенсив

Задача 14

Дан числовой отрезок натуральных чисел: [192, 237]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно шесть делителей, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Решение на Python:

def check_del(x):
max_del = 0
count = 0
for i in range(2, x//2+1):
if x % i == 0:
count += 1
max_del = i
if count == 6:
return max_del
else:
return -1

for x in range(192, 237 + 1):
num = check_del(x)
if num != -1:
print(x, num)

Решение на C++:

int check(int val){
int count = 0, max = 0;
for (int i = 2; i <= val / 2; ++i)
if (val % i == 0){
count++;
max = i; // последний делитель - наибольший
}
if (count == 6)
return max;
return - 1;
}

int main(){
for (int i = 192; i <= 237; ++i){
int rez = check(i);
if (rez != -1)
cout << i << " " << rez << endl;
}
return 0;
}

Ответы: 
195 65
222 111
230 115
231 77
232 116

Ответ:
Показать решение
Бесплатный интенсив

Задача 15

Дан числовой отрезок натуральных чисел: [12878, 13000]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно четыре делителя, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Решение на Python:

def check_del(x):
max_del = 0
count = 0
for i in range(2, x//2+1):
if x % i == 0:
count += 1
max_del = i
if count > 4:
return -1
if count == 4:
return max_del
else:
return -1
for x in range(12878, 13000 + 1):
num = check_del(x)
if num != -1:
print(x, num)

Решение на C++:

int check(int val){
int count = 0, max = 0;
for (int i = 2; i <= val / 2; ++i)
if (val % i == 0){
count++;
max = i; // последний делитель - наибольший
}
if (count == 4)
return max;
return - 1;
}

int main(){
for (int i = 12878; i < 13001; ++i){
int rez = check(i);
if (rez != -1)
cout << i << " " << rez << endl;
}
return 0;
}

Ответы:
12884 6442
12887 1841
12897 4299
12916 6458
12943 1849
12947 1177
12951 4317

Ответ:
Показать решение
Бесплатный интенсив

Задача 16

Дан числовой отрезок натуральных чисел: [48724, 48768]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно четыре делителя, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Напишем код, где в основной программе будет перебираться диапазон наших числах, а проверка условия будет осуществляться в отдельной функции. Пример программы на Python:

def check_del(x):

max_del = 0

count = 0

for i in range(2, x//2+1):

if x % i == 0:

count += 1

max_del = i

if count > 4:

return -1

if count == 4:

return max_del

else:

return -1

for x in range(48724, 48768 + 1):

num = check_del(x)

if num != -1:

print(x, num)

Ответ:

48725 9745

48749 1681

48753 16251

Ответ:
Показать решение
Бесплатный интенсив

Задача 17

Дан числовой отрезок натуральных чисел: [2147, 2195]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно два делителя, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Напишем код, где в основной программе будет перебираться диапазон наших числах, а проверка условия будет осуществляться в отдельной функции. Пример программы на Python:

def check_del(x):

max_del = 0

count = 0

for i in range(2, x//2+1):

if x % i == 0:

count += 1

max_del = i

if count == 2:

return max_del

else:

return -1

for x in range(2147, 2195 + 1):

num = check_del(x)

if num != -1:

print(x, num)

Ответ:

2147 113

2149 307

2155 431

2157 719

2159 127

2165 433

2167 197

2171 167

2173 53

2174 1087

2177 311

2181 727

2182 1091

2183 59

2186 1093

2189 199

2191 313

2194 1097

2195 439

Ответ:
Показать решение
Бесплатный интенсив

Задача 18

Дан числовой отрезок натуральных чисел: [154100, 154200]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно два нечётных делителя, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший нечётный делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Напишем код, где в основной программе будет перебираться диапазон наших числах, а проверка условия будет осуществляться в отдельной функции. Пример программы на Python:

def check_del(x):

max_del = 0

count = 0

for i in range(3, x//2+1, 2):

if x % i == 0:

count += 1

max_del = i

if count > 2:

return -1

if count == 2:

return max_del

else:

return -1

for x in range(154100, 154200 + 1):

num = check_del(x)

if num != -1:

print(x, num)

Ответ:

154103 2111

154109 8111

154117 673

154121 14011

154123 6701

154129 1951

154139 9067

154145 30829

154149 51383

154151 1109

154163 4973

154169 6703

154171 1021

154177 2909

154189 22027

154195 30839

154199 569

Ответ:
Показать решение
Бесплатный интенсив

Задача 19

Дан числовой отрезок натуральных чисел: [1, 200]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно три делителя, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Напишем код, где в основной программе будет перебираться диапазон наших числах, а проверка условия будет осуществляться в отдельной функции. Пример программы на Python:

def check_del(x):

max_del = 0

count = 0

for i in range(2, x//2+1):

if x % i == 0:

count += 1

max_del = i

if count == 3:

return max_del

else:

return -1

for x in range(1,200 + 1):

num = check_del(x)

if num != -1:

print(x, num)

Ответ:

16 8

81 27

Ответ:
Показать решение
Бесплатный интенсив

Задача 20

Дан числовой отрезок натуральных чисел: [5726, 5754]. Напишите программу, которая ищет на данном отрезке числа, у которых ровно шесть делителей, не считая единицы и самого числа.

Для каждого найденного числа запишите через пробел само число и наибольший делитель этого числа (кроме самого числа). Каждая следующая найденная пара пишется с новой строки в порядке возрастания первого числа. Например, если подошло два числа: 10 и 21, необходимо записать в ответ:

10 5

21 7

В качестве ответа прикрепите код программы, а также ответ в формате, указанном ранее.

Решение

Напишем код, где в основной программе будет перебираться диапазон наших числах, а проверка условия будет осуществляться в отдельной функции. Пример программы на Python:

def check_del(x):

max_del = 0

count = 0

for i in range(2, x//2+1):

if x % i == 0:

count += 1

max_del = i

if count > 6:

return -1

if count == 6:

return max_del

else:

return -1

for x in range(5726, 5754 + 1):

num = check_del(x)

if num != -1:

print(x, num)

Ответ:

5726 2863

5727 1909

5734 2867

5735 1147

5738 2869

5745 1915

5752 2876

Ответ:
Показать решение
Бесплатный интенсив
Показать еще
  • Без воды
  • Ламповая атмосфера
  • Крутые преподаватели

ЕГЭ 2026: бесплатный курс
по информатике

На бесплатном демо-курсе ты:
  • Узнаешь как кодируется изображение
  • Поймешь как решать 7 номер ЕГЭ
  • Разберешься с паролями
  • Потренируешь 11 и 4 номер ЕГЭ
Получи бесплатный демо-доступ
Оставь заявку и займи место
на бесплатном курсе Турбо ЕГЭ
Нажимая на кнопку «Отправить», вы принимаете положение об обработке персональных данных.