1. Для цикла For есть решение выложенное выше от Srzontmp.2. Почти ничего не меня получим код для цикла while:var i, n, k: integer;begin i := 2; readln(n); while i <= n div 2 do begin if (n mod i) = 0 then k := i; i:=i+1; end; writeln('наибольший делитель ', n, ' = ', k); end.3. Аналогично для цикла Repeat:var i, n, k: integer;begin i := 2; readln(n); repeat if (n mod i) = 0 then k := i; i:=i+1; until i> n div 2; writeln('наибольший делитель ', n, ' = ', k); end.