Data update
This commit is contained in:
parent
52a6ef48dd
commit
157b70a810
604 changed files with 14253 additions and 2100 deletions
35
Task/Fermat-numbers/PascalABC.NET/fermat-numbers.pas
Normal file
35
Task/Fermat-numbers/PascalABC.NET/fermat-numbers.pas
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
##
|
||||
function IsPrime(n: biginteger): boolean;
|
||||
begin
|
||||
if (n = 2) or (n = 3) then Result := true
|
||||
else if (n <= 1) or ((n mod 2) = 0) or ((n mod 3) = 0) then Result := false
|
||||
else
|
||||
begin
|
||||
var i := 5bi;
|
||||
Result := False;
|
||||
while i * i < n do
|
||||
begin
|
||||
if (n mod i) = 0 then
|
||||
begin
|
||||
println(i, n div i);
|
||||
exit;
|
||||
end
|
||||
else if (n mod (i + 2)) = 0 then
|
||||
begin
|
||||
println(i + 2, n div (i + 2));
|
||||
exit;
|
||||
end;
|
||||
i += 6;
|
||||
end;
|
||||
Result := True;
|
||||
end;
|
||||
end;
|
||||
|
||||
function fermat(n: integer) := power(2bi, int64(power(2, n))) + 1;
|
||||
|
||||
for var n := 0 to 9 do writeln('F', n, ' = ', fermat(n));
|
||||
for var n := 0 to 6 do
|
||||
begin
|
||||
write('F', n, ' = ');
|
||||
if isprime(fermat(n)) then println(fermat(n));
|
||||
end;
|
||||
Loading…
Add table
Add a link
Reference in a new issue