Каждое составное число можно единственным способом представить в виде произведения простых чисел. Например:
$$20=2\cdot 2\cdot 5;$$
$$21=3\cdot 7.$$
Такое разложение на множетели осуществляется следующим образом. Заданное число делится поочередно на следующие друг за другом по порядку простые числа. Если на какое-либо из них оно делится без остатка, то данное простое число является множителем. Чтобы найти другие простые множители, надо полученное частное разделить на это же число или на следующие по порядку простое число и т. д. Поскольку найти простые числа нелегко, то проще сначала делить на 2, а затем - подряд на все нечетные числа.
Простое число нельзя разложить на простые множители.
Приведем программу, которая печатает все простые множители любого данного числа (если число простое, то печатается оно само).
Program mnoj;
uses crt;
var i, n: integer;
begin
write('Введите число: ');
read(n);
while n mod 2=0 do
begin {n делится на два}
write(2,' ');
n:=n div 2
end;
i:=3;
while i<=n do
if n mod i=0
then {n делится на i}
begin
write(i,' ');
n:=n div i
end
else i:=i+2; {переход к следующему нечетному делителю}
readkey
end.
2012-06-25 • Просмотров [ 21921 ]