Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ оператор цикла

Автор: pupsic 16.02.2007 20:01

найти все делители числа . вывести на экран не применяя див и мод


uses crt;
var
i,n:integer;
begin
writeln('n');
readln(n);


for i:=1 to n div 2 do
if n mod i=0 then write (i, ' ');
end.



вот у меня так получаеться , а по другому я ввожу после for

t:=n;
while t>=i then t:=t-1
if t=0 then


вот что делать дальше путаюсь mega_chok.gif

Автор: volvo 16.02.2007 20:22

Ну, если нельзя делить - значит надо отнимать от числа N текущее число i до тех пор, пока его МОЖНО отнимать (пока результат больше, чем i), и смотреть, чему равен остаток:

uses crt;
var
i, n, t:integer;
begin
writeln('n');
readln(n);

for i:=1 to n div 2 do begin
t := n;
while t >= i do
t := t - i;
if t = 0 then write(i, ' '); { <-- если остаток нулевой - значит, N делится на i }
end;

end.


Автор: pupsic 16.02.2007 20:28

ну я так делала , но оно выводит только количество делителей , а мне нужны сами делители nea.gif

Добавлено через 1 мин.
а не не вопрос работает . Значит ошибалась спасибо