Пример решения задачи №25 из нового ЕГЭ по информатике
Это довольно простая задача, которая проверяет основные навыки программирование, а именно умение находить делители числа, организовывать циклы, составлять подпрограммы.
Пример задачи
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [120115; 120200],
число, имеющее максимальное количество различных натуральных делителей, если таких чисел несколько — найдите максимальное из них. Выведите на экран количество делителей такого числа и само число.
Например, в диапазоне [80; 90] максимальное количество различных натуральных делителей имеет число 90,
поэтому для этого диапазона вывод на экране должна содержать следующие значения:
12 90
Ниже я выкладываю хорошо закомментированный код на Python, в котором не составит труда разобраться. Для лучшего понимания, скопируйте код программы в какой-нибудь редактор (Nodepad++, Блокнот) или в систему программирования (PyCharm, Visual Studio).
#Подсчитываем количество делителей числа
def Del(n):
#число 1 рассматриваем отдельно, так как у него всего один делитель
if n==1:
return 1
#у остальных чисел делителей как минимум 2 (1 и оно само)
k=2
#подсчитываем делители числа начиная перебирать числа 2 до n//2
#например для числа 10 мы будем перебирать числа от 2 до 5
for i in range(2,n//2+1):# +1 потому что в Python range перебирает числа до n-1
if (n%i==0):#если число n делится на i без остатка,
k+=1#то увеличиваем количество делителей на 1
return k#возвращаем количество делителей числа
#решаем задачу
maxDel=Del(120115)#максимальное количество делитей
max=120115#число
for i in range(120116,120201):#перебираем числа из заданного диапазона не забывая прибавить 1 к последнему числу
k=Del(i)#считаем количество делителей очередного числа
if k>=maxDel:#если количество делителей очередного числа больше чем найденное ранее количество делителей
maxDel=k#запоминаем количество делителей
max=i#запоминаем число
print(maxDel,max)#выводим результат на экран
Для закрепления, решите следующие задачи используя условие и решение задачи данной выше:
- Найдите число, имеющее минимальное количество различных натуральных делителей
- Найдите число, имеющее максимальную сумму различных натуральных делителей
- Найдите максимальное простое число
- Найдите минимальное простое число