Data update

This commit is contained in:
Ingy döt Net 2024-10-16 18:07:41 -07:00
parent 81fd053722
commit 52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions

View file

@ -0,0 +1,25 @@
##
function IsPrime(n: integer): boolean;
begin
result := false;
for var i := 2 to n.Sqrt.Floor do
if n mod i = 0 then
exit;
result := true;
end;
function rotations(n: integer): sequence of integer;
begin
var a := n.tostring;
for var i := 1 to a.Length do
yield (a[i:] + a[:i]).ToInteger;
end;
function isCircular(n: integer): boolean;
begin
var rot := rotations(n);
if rot.first = rot.min then
result := rot.All(x -> isPrime(x));
end;
(2..1000_000).Where(x -> isCircular(x)).Take(19).Println;

View file

@ -0,0 +1,71 @@
include Settings
say version; say 'Circular primes'; say
call First19
call Next3
call HigherReps
exit
First19:
procedure expose glob. prim.
call Time('r')
numeric digits 10
say 'First 19 circular primes:'
p = Primes(200000)
do i = 1 to p
a = prim.prime.i
if Verify(a,'024568','m') > 0 then
iterate i
b = a; l = Length(b)
do l-1
b = Right(b,l-1)||Left(b,1)
if b < a then
iterate i
if \ IsPrime(b) then
iterate i
end
call Charout ,a' '
end
say
say Format(Time('e'),,3) 'seconds'
say
return
Next3:
procedure expose glob.
call Time('r')
numeric digits 320
say 'Next 3 circular primes:'
do i = 7 to 320
r = Repunit(i)
if IsPrime(r) then
call charout ,'R('i') '
end
say
say Format(Time('e'),,3) 'seconds'
say
return
HigherReps:
procedure expose glob.
call Time('r')
numeric digits 1040
say 'Primality of R(1031):'
if IsPrime(Repunit(1031)) then
say 'R(1031) is probable prime'
else
say 'R(1031) is composite'
say Format(Time('e'),,3) 'seconds'
say
return
Repunit:
/* Repeat 1's function */
procedure expose glob.
arg x
/* Formula */
return Copies('1',x)
include Numbers
include Functions
include Abend

View file

@ -0,0 +1,6 @@
# Find first 19 circular primes
IsP ← =1⧻°/×
Rots ← ≡(⋕↻)+1⊙¤⇡⧻.°⋕
Circ ← ⨬(⋅0|/↧≡IsP)⊸(=⊙/↧)⟜Rots
▽⊸≡Circ▽⊸≡IsP+1⇡1e6