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,51 @@
fastfunc isprim num .
i = 2
while i <= sqrt num
if num mod i = 0
return 0
.
i += 1
.
return 1
.
fastfunc nextprim prim .
repeat
prim += 1
until isprim prim = 1
.
return prim
.
proc insert e . d[] .
for i = 1 to len d[]
if d[i] >= e
if d[i] = e
return
.
break 1
.
.
d[] &= 0
for i = len d[] downto i + 1
d[i] = d[i - 1]
.
d[i] = e
.
proc fortunates . .
maxint = pow 2 53
primorial = 1
prim = 2
repeat
primorial *= prim
until primorial + 1000 >= maxint
prim = nextprim prim
j = 3
while isprim (primorial + j) = 0
j = j + 2
.
insert j fortuns[]
.
for i to 8
write fortuns[i] & " "
.
.
fortunates

View file

@ -0,0 +1,60 @@
include Settings
say version; say 'Fortunate numbers'; say
numeric digits 155
call GetPrimorials 75
call GenerateFortunate 75
call ShowFortunate 50
exit
GetPrimorials:
call Time('r')
arg x
say 'Get the first' x 'primorials...'
call Primorials(-x)
say Format(Time('e'),,3) 'seconds'; say
return
GenerateFortunate:
call Time('r')
arg x
say 'Generate fortunate numbers...'
work. = 0; m = 0; n = 0
do i = 1 to x
p = prmo.primorial.i
do j = 3 by 2
m = m+1
if IsPrime(p+j) then
leave j
end
if work.j = 0 then do
work.j = 1; n = n+1
end
end
say m 'primality tests performed'
say n 'fortunate numbers found'
say Format(Time('e'),,3) 'seconds'; say
return
ShowFortunate:
call Time('r')
arg x
say 'First' x 'fortunate numbers:'
n = 0
do i = 1
if work.i then do
n = n+1
call CharOut ,Right(i,5)
if n//10 = 0 then
say
if n = x then
leave i
end
end
say Format(Time('e'),,3) 'seconds'; say
return
include Numbers
include Functions
include Constants
include Abend