Найдите наименьшее натуральное число, у которого ровно 36 делителей (включая 1 и само число 36). например, у числа 6 четыре делителя: 1, 2, 3, 6. в качестве ответа укажите одно натуральное число.

Znanija027 Znanija027    2   24.08.2019 23:20    5

Ответы
linov310 linov310  05.10.2020 17:35
Var p,k,i:integer; f:boolean;
begin
 f:=false;
 p:=36;
 while not f do
  begin
  p:=p+1;
  k:=2;
  for i:=2 to p div 2 do
   if p mod i = 0 then k:=k+1;
  f:=k=36;
  end;
writeln(p);
end.

Результат:
1260
ПОКАЗАТЬ ОТВЕТЫ
qwertyuiop342 qwertyuiop342  05.10.2020 17:35
Оптимизированно относительно предыдущего ответа.
Так и не понятно причем тут 36 в качестве делителя, потому не использовалось

var
    p, k, i: integer;

begin
    p := 2;
    while true do
    begin
        k := 2;
        for i := 2 to Floor(sqrt(p)) do
            if p mod i = 0 then
                if p div i = i then {случай полного квадрата}
                    k := k + 1
                else
                    k := k + 2;
        if k = 36 then break;
        p := p + 1;
    end;
    
    writeln(p);
end.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика