Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
38
Task/Prime-decomposition/Pascal/prime-decomposition-1.pas
Normal file
38
Task/Prime-decomposition/Pascal/prime-decomposition-1.pas
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
Program PrimeDecomposition(output);
|
||||
|
||||
type
|
||||
DynArray = array of integer;
|
||||
|
||||
procedure findFactors(n: Int64; var d: DynArray);
|
||||
var
|
||||
divisor, next, rest: Int64;
|
||||
i: integer;
|
||||
begin
|
||||
i := 0;
|
||||
divisor := 2;
|
||||
next := 3;
|
||||
rest := n;
|
||||
while (rest <> 1) do
|
||||
begin
|
||||
while (rest mod divisor = 0) do
|
||||
begin
|
||||
setlength(d, i+1);
|
||||
d[i] := divisor;
|
||||
inc(i);
|
||||
rest := rest div divisor;
|
||||
end;
|
||||
divisor := next;
|
||||
next := next + 2;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
factors: DynArray;
|
||||
j: integer;
|
||||
|
||||
begin
|
||||
setlength(factors, 1);
|
||||
findFactors(1023*1024, factors);
|
||||
for j := low(factors) to high(factors) do
|
||||
writeln (factors[j]);
|
||||
end.
|
||||
46
Task/Prime-decomposition/Pascal/prime-decomposition-2.pas
Normal file
46
Task/Prime-decomposition/Pascal/prime-decomposition-2.pas
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
Program PrimeDecomposition(output);
|
||||
|
||||
type
|
||||
DynArray = array of integer;
|
||||
|
||||
procedure findFactors(n: Int64; var d: DynArray);
|
||||
var
|
||||
divisor, next, rest: Int64;
|
||||
i: integer;
|
||||
begin
|
||||
i := 0;
|
||||
divisor := 2;
|
||||
next := 3;
|
||||
rest := n;
|
||||
while (rest <> 1) do
|
||||
begin
|
||||
while (rest mod divisor = 0) do
|
||||
begin
|
||||
setlength(d, i+1);
|
||||
d[i] := divisor;
|
||||
inc(i);
|
||||
rest := rest div divisor;
|
||||
end;
|
||||
divisor := next;
|
||||
next := next + 2; // try only odd numbers
|
||||
// cut condition: avoid many useless iterations
|
||||
if (rest < divisor * divisor) then
|
||||
begin
|
||||
setlength(d, i+1);
|
||||
d[i] := rest;
|
||||
rest := 1;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
var
|
||||
factors: DynArray;
|
||||
j: integer;
|
||||
|
||||
begin
|
||||
setlength(factors, 1);
|
||||
findFactors(1023*1024, factors);
|
||||
for j := low(factors) to high(factors) do
|
||||
writeln (factors[j]);
|
||||
readln;
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue