Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
47
Task/Prime-decomposition/Pascal-P/prime-decomposition.pas
Normal file
47
Task/Prime-decomposition/Pascal-P/prime-decomposition.pas
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
program primdecomp(input, output);
|
||||
(* Prime decomposition *)
|
||||
const
|
||||
maxfacindex = 30;
|
||||
(* -(2^31) has most prime factors (31 twos) than other 32-bit signed integer.
|
||||
*)
|
||||
type
|
||||
tfacs = array[0 .. maxfacindex] of integer;
|
||||
var
|
||||
i, n, cnt: integer;
|
||||
facs: tfacs;
|
||||
|
||||
function facscnt(n: integer; var facs: tfacs): integer;
|
||||
var
|
||||
i, cnt: integer;
|
||||
begin
|
||||
n := abs(n);
|
||||
cnt := 0;
|
||||
if n >= 2 then
|
||||
begin
|
||||
i := 2;
|
||||
while i * i <= n do
|
||||
begin
|
||||
if n mod i = 0 then
|
||||
begin
|
||||
n := n div i;
|
||||
facs[cnt] := i;
|
||||
cnt := cnt + 1;
|
||||
i := 2;
|
||||
end
|
||||
else
|
||||
i := i + 1;
|
||||
end;
|
||||
facs[cnt] := n;
|
||||
cnt := cnt + 1;
|
||||
end;
|
||||
facscnt := cnt;
|
||||
end;
|
||||
|
||||
begin
|
||||
write('Enter a number: ');
|
||||
read(n);
|
||||
cnt := facscnt(n, facs);
|
||||
for i := 0 to cnt - 2 do write(facs[i]:1, ' ');
|
||||
writeln(facs[cnt - 1]:1);
|
||||
(* readln; *)
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue