Модуль: ЕГЭ-2022. Вопрос 25. Поиск делителей


Задача

2 /11


Делители числа - оптимизируем

Теория Нажмите, чтобы прочитать/скрыть


Оптимизация алгоритма поиска делителей числа

Для перебора всех чисел от 1 до N и проверка каждого числа на кратность при большом значении N занимает большое количество времени. 
Однако легко убедиться, что в интервале \([N/2+1; N -1]\) делителей числа N нет. Таким образом, можем сократить количество проверок почти в два раза.

 

C++

Python Pascal
for(int i = 1; i <= n/2; i++)
    if ( n % i == 0 ) 
    {
          ...
    }

for i in range(1, n//2 + 1):
    if n % i == 0:
        ...

for i:=1 to n div 2+1 do 
    if( n mod i =0) then
     ...



Можно также учесть тот факт, что у нечетного числа четных делителей быть не может и перебирать делители у нечетного числа с шагом 2.
 

C++

if (n % 2 == 0)
  {
      for(int i = 1; i <= n/2; i++)
        if ( n % i == 0 ) 
        {
              ...
        }
  }
  else
  {
      for(int i = 1; i <= n/3; i = i + 2) 
        if ( n % i == 0 ) 
        {
              ...
        }
  }

Python
if n % 2 == 0:
    for i in range(1, n//2 + 1):
        if n % i == 0:
            ...
else:
    for i in range(1, n//3 + 1, 2):
        if n % i == 0:
            ...   

Pascal
if n mod 2 = 0 then
     for i:=1 to n div 2+1 do 
     begin
       if n mod i = 0 then
         // ...
     end
   else
      i := 1;
      while (i <= n div 3) do
      begin
          if n mod i = 0 then 
              // ...
          i := i + 2;
     end;


 

Задача

Для натурального числа N определите четность максимального делителя, не равного N и 1. Выведите через пробел сам максимальный делитель и слово "even", если максимальный делитель четный, и слово "odd" - если нечетный.

Входные данные
На вход подается не простое натуральное число N (1 <= N <= 109).

Выходные данные
Выведите на экран ответ сначала максимальный делитель числа, затем через пробел слово "even", если максимальный делитель четный, и слово "odd" - если нечетный.
 
Примеры
Входные данные Выходные данные
1 9 3 odd

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w6416
Python220
Комментарий учителя