Главная » Статьи » Задачи по программированию

Разложение на простые множители [Pascal]
Каждое составное число можно единственным способом представить в виде произведения простых чисел. Например:

20=2*2*5;
21=3*7.

Такое разложение на множители осуществляется следующим образом.Заданное число делится поочередно на следующие друг за другом по порядку простые числа. Если на какое-либо из них оно делится без остатка, то данное простое число является множителем. Чтобы найти другие простые множители, надо полученное частное разделить на это же число или на следующее по порядку простое число и т.д. Поскольку найти простые числа нелегко, то проще сначала делить на 2, а затем — подряд на все нечетные числа.
Простое число нельзя разложить на простые множители. Приведем составленную нами программу, которая печатает все простые множители любого данного числа (если число простое, то печатается оно само).
Код
program mno;  
  var i,n:integer;
  begin
  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 (* переход к следующему *)
  (* нечетному делителю *)
end.
  

 


Надеюсь,
задача была интересной и вы нашли для себя, что-то новое. Оставляйте комментарии,
добавляйте свои интересные задачи.

Спасибо что посетили наш
сайт.

С уважением администрация сайта Solution.3dn.ru






Категория: Задачи по программированию | Добавил: shypuk (14.08.2012)
Просмотров: 6927 | Теги: delphi, Разложение на простые множители Pas, Pascal | Рейтинг: 5.0/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]