Автор: -ice- 6.04.2005 23:06
Код
var
n : integer;
j: integer;
begin
writeln ('Введите целое число');
readln (n);
if n=0 then
writeln ('для нуля лишена смысла')
else if n=1 then
writeln ('нет')
else
writeln ('‘Сомножели числа ', n,' :');
if n<0 then
writeln ('-1, ');
n := -n;
j :=2;
while n> 1 do begin
while (n mod j) = 0 do begin
writeln (j,',');
n := n div j;
end;
j :=j + 1;
end;
end.
не раскладывает на сомножители положительное число, что не так, помогите! плиз
Автор: volvo 6.04.2005 23:22
Вообще-то это делается вот так:
Код
var
i, x: word;
begin
Write('Введите целое число'); ReadLn(x);
If x = 0 then Writeln('для нуля лишена смысла')
else if x = 1 then Writeln('нет')
else begin
i:=2;
while (x>1) and (x mod i = 0) do begin
write(i:4);
x:= x div i;
end;
i:=3;
while (i < x div 2) do begin
while (x>1) and (x mod i = 0) do begin
write(i:4);
x:= x div i;
end;
inc(i,2);
end;
if x>1 then writeln(x:4);
end { else };
writeln;
end.