Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
51
Task/Fortunate-numbers/EasyLang/fortunate-numbers.easy
Normal file
51
Task/Fortunate-numbers/EasyLang/fortunate-numbers.easy
Normal 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
|
||||
60
Task/Fortunate-numbers/REXX/fortunate-numbers-2.rexx
Normal file
60
Task/Fortunate-numbers/REXX/fortunate-numbers-2.rexx
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue