Главная » Статьи » Задачи по программированию |
Разложение на простые множители [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. Надеюсь, | |
Просмотров: 6927
| Теги: |
Всего комментариев: 0 | |