![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разложение числа на множетели
Фёдр_иваныч © (2006-11-27 17:03:00)Привет всем, помогите пожалуйста решить следующую задачу:
Разложить число N на простые множители. N - целое, вводится с клавиатуры. На экран вывести просто все множители, участвующие в разложении. Например, для N = 100 на экран должны быть выведены числа 2 2 5 5 (т.к. 100 = 2*2*5*5)
Если не хотите писать полный код, то подскажите по подробнее каким способом это организовать
TUser (2006-11-27 20:12:00) [1]i := 2; f := true;
while f and i < sqrt(число) do
while f and число mod i = 0 do
write (i, ' * ');
число Ж= число div i
if число = 1 then
f := false;
inc (i);
if число <> 1 then
writeln (число)
else
for i := 0 to 2 do
writeln (#8)
Palladin (2006-11-27 19:43:00) [2]Красивше эта задача решается рекурсией.
procedure TForm1.sButton1Click(Sender: TObject);
Function Mults(n:Integer):String;
Procedure _FindMult(n:Integer;Var s:String);
Var
i:Integer;
Begin
For i:=2 to n Div 2 Do If n mod i=0 Then
Begin
s:=s+IntToStr(i)+',';
_FindMult(n div i,s);
Exit;
End;
s:=s+IntToStr(n);
End;
Begin
Result:='';
_FindMult(n,Result);
End;
begin
Edit1.Text:=Mults(1001);
end;
ps что то я раздобрел как поел... )
Фёдр_иваныч (2006-11-27 19:13:00) [3]Я не совсем понимаю эту строчку:
в цикле проверяем - если делится, то делим на очередное число (возможно, несколько раз) и выводим его как множитель
Palladin (2006-11-27 19:05:00) [4]почти так же, как в:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1164628470&n=18
в цикле проверяем - если делится, то делим на очередное число (возможно, несколько раз) и выводим его как множитель
Cooller (2006-11-27 19:04:00) [5]MBo © (27.11.06 17:17) [3]
Можно по подробние а то я не пойму что ты имел в виду
MBo (2006-11-27 17:17:00) [6]почти так же, как в:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1164628470&n=18
в цикле проверяем - если делится, то делим на очередное число (возможно, несколько раз) и выводим его как множитель
Draught (2006-11-27 17:09:00) [7]На сколько я помню алгебру или это была еще математика
разложение числа на множители - деление числа сначала на минимальный делитель, затем результат так же делим на минимальный делитель и т.д. до тех пор, пока не доберемся до простого числа...
Cawa (2006-11-27 17:08:00) [8]извините за не осведомленность, но можно по подробней в частности: есть ли ограничение количества множителей и что значит "простой множитель"