Найдите наименьшее натуральное число, у которого ровно 36 делителей (включая 1 и само число 36). например, у числа 6 четыре делителя: 1, 2, 3, 6. в качестве ответа укажите одно натуральное число.
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.
Оптимизированно относительно предыдущего ответа. Так и не понятно причем тут 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;
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
Так и не понятно причем тут 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.