var N, i,t:longInt;
begin
writeln ('vvedite chislo');
readln (N);
writeln;
writeln ('delitel chisla');
i:=1;
t:= N;
while i<t do
begin
if (N mod i=0) then
begin
writeln (i);
t:= N div i;
writeln (t);
end;
inc (i);
writeln ('try:',i); {<--- нужно это перебор сокращать делением.}
end;
readln;
end.
Pascal. Найти все делители числа n.
Код:
Нужно сделать так, чтобы перебор делителей сокращался ( уменьшить границу) . я прописываю деление на 2 в начале цикла, он сокращает, но если взять число 4, например, тогда такое сокращение не подходит. Что делать ?
Код:
for i := 1 to Round(Sqrt(n)) do
if n mod i = 0 then
WriteLn(i);
if n mod i = 0 then
WriteLn(i);
Тут i - делитель, n - число для которого ищем делители.