Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -3,7 +3,7 @@ cyclops?: function [n][
|
|||
all? @[
|
||||
-> odd? size digs
|
||||
-> zero? digs\[(size digs)/2]
|
||||
-> 1 = size match to :string n "0"
|
||||
-> one? match.count to :string n "0"
|
||||
]
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
func is_cyclops n .
|
||||
fastfunc is_cyclops n .
|
||||
if n = 0 : return 1
|
||||
m = n mod 10
|
||||
while m <> 0
|
||||
|
|
@ -13,7 +13,8 @@ func is_cyclops n .
|
|||
n = n div 10
|
||||
m = n mod 10
|
||||
.
|
||||
return if n = 0 and count = 0
|
||||
if n = 0 and count = 0 : return 1
|
||||
return 0
|
||||
.
|
||||
fastfunc isprim num .
|
||||
i = 2
|
||||
|
|
@ -38,14 +39,15 @@ func blind n .
|
|||
.
|
||||
return n
|
||||
.
|
||||
func is_palindr n .
|
||||
fastfunc is_palindr n .
|
||||
l = n
|
||||
while l <> 0
|
||||
m = l mod 10
|
||||
k = 10 * k + m
|
||||
l = l div 10
|
||||
.
|
||||
return if n = k
|
||||
if n = k : return 1
|
||||
return 0
|
||||
.
|
||||
proc show .
|
||||
while cnt < 50
|
||||
|
|
@ -60,7 +62,7 @@ proc show .
|
|||
i = 2
|
||||
cnt = 0
|
||||
while cnt < 50
|
||||
if is_cyclops i = 1 and isprim i = 1
|
||||
if isprim i = 1 and is_cyclops i = 1
|
||||
write i & " "
|
||||
cnt += 1
|
||||
.
|
||||
|
|
@ -91,5 +93,6 @@ proc show .
|
|||
.
|
||||
i += 1
|
||||
.
|
||||
print ""
|
||||
.
|
||||
show
|
||||
|
|
|
|||
|
|
@ -1,69 +1,67 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #004080;">atom</span> <span style="color: #000000;">t0</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">time</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">bump</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">half</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000080;font-style:italic;">-- add a digit to valid halves
|
||||
-- eg {0} --> {1..9} (no zeroes)
|
||||
-- --> {11..99} ("")
|
||||
-- --> {111..999}, etc</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">half</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">hi</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">half</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]*</span><span style="color: #000000;">10</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">digit</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">9</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">hi</span><span style="color: #0000FF;">+</span><span style="color: #000000;">digit</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">res</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
with javascript_semantics
|
||||
atom t0 = time()
|
||||
function bump(sequence half)
|
||||
-- add a digit to valid halves
|
||||
-- eg {0} --> {1..9} (no zeroes)
|
||||
-- --> {11..99} ("")
|
||||
-- --> {111..999}, etc
|
||||
sequence res = {}
|
||||
for i=1 to length(half) do
|
||||
integer hi = half[i]*10
|
||||
for digit=1 to 9 do
|
||||
res &= hi+digit
|
||||
end for
|
||||
end for
|
||||
return res
|
||||
end function
|
||||
|
||||
<span style="color: #008080;">procedure</span> <span style="color: #000000;">cyclops</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">s</span><span style="color: #0000FF;">=</span><span style="color: #008000;">""</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{},</span>
|
||||
<span style="color: #000000;">half</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0</span><span style="color: #0000FF;">}</span> <span style="color: #000080;font-style:italic;">-- valid digits, see bump()</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">left</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- half[] before the 0</span>
|
||||
<span style="color: #000000;">right</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- half[] after the 0</span>
|
||||
<span style="color: #000000;">hlen</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- length(half)</span>
|
||||
<span style="color: #000000;">cpow</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">10</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- cyclops power (of 10)</span>
|
||||
<span style="color: #000000;">bcpow</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- blind cyclops power</span>
|
||||
<span style="color: #000000;">cn</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span> <span style="color: #000080;font-style:italic;">-- cyclops number (scratch)</span>
|
||||
<span style="color: #004080;">bool</span> <span style="color: #000000;">valid</span> <span style="color: #0000FF;">=</span> <span style="color: #004600;">false</span><span style="color: #0000FF;">,</span>
|
||||
<span style="color: #000000;">bPrime</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">match</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"prime"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">s</span><span style="color: #0000FF;">),</span>
|
||||
<span style="color: #000000;">bBlind</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">match</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"blind"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">s</span><span style="color: #0000FF;">),</span>
|
||||
<span style="color: #000000;">bPalin</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">match</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"palindromic"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">s</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">while</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">)<</span><span style="color: #000000;">50</span> <span style="color: #008080;">or</span> <span style="color: #000000;">cn</span><span style="color: #0000FF;"><=</span><span style="color: #000000;">1e7</span> <span style="color: #008080;">or</span> <span style="color: #008080;">not</span> <span style="color: #000000;">valid</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">right</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">right</span><span style="color: #0000FF;">></span><span style="color: #000000;">hlen</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">right</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #000000;">left</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">left</span><span style="color: #0000FF;">></span><span style="color: #000000;">hlen</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">half</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">bump</span><span style="color: #0000FF;">(</span><span style="color: #000000;">half</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">hlen</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">half</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">cpow</span> <span style="color: #0000FF;">*=</span> <span style="color: #000000;">10</span>
|
||||
<span style="color: #000000;">bcpow</span> <span style="color: #0000FF;">*=</span> <span style="color: #000000;">10</span>
|
||||
<span style="color: #000000;">left</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">lh</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">half</span><span style="color: #0000FF;">[</span><span style="color: #000000;">left</span><span style="color: #0000FF;">],</span>
|
||||
<span style="color: #000000;">rh</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">half</span><span style="color: #0000FF;">[</span><span style="color: #000000;">right</span><span style="color: #0000FF;">]</span>
|
||||
<span style="color: #000000;">cn</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">lh</span><span style="color: #0000FF;">*</span><span style="color: #000000;">cpow</span><span style="color: #0000FF;">+</span><span style="color: #000000;">rh</span> <span style="color: #000080;font-style:italic;">-- cyclops number</span>
|
||||
<span style="color: #000000;">valid</span> <span style="color: #0000FF;">=</span> <span style="color: #008080;">not</span> <span style="color: #000000;">bPrime</span> <span style="color: #008080;">or</span> <span style="color: #7060A8;">is_prime</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cn</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">valid</span> <span style="color: #008080;">and</span> <span style="color: #000000;">bBlind</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">valid</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">is_prime</span><span style="color: #0000FF;">(</span><span style="color: #000000;">lh</span><span style="color: #0000FF;">*</span><span style="color: #000000;">bcpow</span><span style="color: #0000FF;">+</span><span style="color: #000000;">rh</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">valid</span> <span style="color: #008080;">and</span> <span style="color: #000000;">bPalin</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">valid</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%d"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">lh</span><span style="color: #0000FF;">)</span> <span style="color: #0000FF;">==</span> <span style="color: #7060A8;">reverse</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%d"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">rh</span><span style="color: #0000FF;">))</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">valid</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">append</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%7d"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">cn</span><span style="color: #0000FF;">))</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"First 50 %scyclops numbers:\n%s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">join_by</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..</span><span style="color: #000000;">50</span><span style="color: #0000FF;">],</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">10</span><span style="color: #0000FF;">)})</span>
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"First %scyclops number > 10,000,000: %s at (one based) index: %d\n\n"</span><span style="color: #0000FF;">,</span>
|
||||
<span style="color: #0000FF;">{</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #000000;">res</span><span style="color: #0000FF;">[$],</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">)})</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
|
||||
procedure cyclops(string s="")
|
||||
sequence res = {},
|
||||
half = {0} -- valid digits, see bump()
|
||||
integer left = 1, -- half[] before the 0
|
||||
right = 0, -- half[] after the 0
|
||||
hlen = 1, -- length(half)
|
||||
cpow = 10, -- cyclops power (of 10)
|
||||
bcpow = 1, -- blind cyclops power
|
||||
cn = 0 -- cyclops number (scratch)
|
||||
bool valid = false,
|
||||
bPrime = match("prime",s),
|
||||
bBlind = match("blind",s),
|
||||
bPalin = match("palindromic",s)
|
||||
while length(res)<50 or cn<=1e7 or not valid do
|
||||
right += 1
|
||||
if right>hlen then
|
||||
right = 1
|
||||
left += 1
|
||||
if left>hlen then
|
||||
half = bump(half)
|
||||
hlen = length(half)
|
||||
cpow *= 10
|
||||
bcpow *= 10
|
||||
left = 1
|
||||
end if
|
||||
end if
|
||||
integer lh = half[left],
|
||||
rh = half[right]
|
||||
cn = lh*cpow+rh -- cyclops number
|
||||
valid = not bPrime or is_prime(cn)
|
||||
if valid and bBlind then
|
||||
valid = is_prime(lh*bcpow+rh)
|
||||
end if
|
||||
if valid and bPalin then
|
||||
valid = sprintf("%d",lh) == reverse(sprintf("%d",rh))
|
||||
end if
|
||||
if valid then
|
||||
res = append(res,sprintf("%7d",cn))
|
||||
end if
|
||||
end while
|
||||
printf(1,"First 50 %scyclops numbers:\n%s\n",{s,join_by(res[1..50],1,10)})
|
||||
printf(1,"First %scyclops number > 10,000,000: %s at (one based) index: %d\n\n",
|
||||
{s,res[$],length(res)})
|
||||
end procedure
|
||||
|
||||
<span style="color: #000000;">cyclops</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #000000;">cyclops</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"prime "</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">cyclops</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"blind prime "</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">cyclops</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"palindromic prime "</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #0000FF;">?</span><span style="color: #7060A8;">elapsed</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">time</span><span style="color: #0000FF;">()-</span><span style="color: #000000;">t0</span><span style="color: #0000FF;">)</span>
|
||||
<!--
|
||||
cyclops()
|
||||
cyclops("prime ")
|
||||
cyclops("blind prime ")
|
||||
cyclops("palindromic prime ")
|
||||
?elapsed(time()-t0)
|
||||
|
|
|
|||
|
|
@ -1,36 +1,24 @@
|
|||
(phixonline)-->
|
||||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
|
||||
<span style="color: #004080;">atom</span> <span style="color: #000000;">t0</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">time</span><span style="color: #0000FF;">()</span>
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">bump</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">half</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- (exactly the same as above)
|
||||
-- add a digit to valid halves
|
||||
-- eg {0} --> {1..9} (no zeroes)
|
||||
-- --> {11..99} ("")
|
||||
-- --> {111..999}, etc</span>
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{}</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">half</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">hi</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">half</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]*</span><span style="color: #000000;">10</span>
|
||||
<span style="color: #008080;">for</span> <span style="color: #000000;">digit</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #000000;">9</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">hi</span><span style="color: #0000FF;">+</span><span style="color: #000000;">digit</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">res</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
with javascript_semantics
|
||||
atom t0 = time()
|
||||
|
||||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">half</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">0</span><span style="color: #0000FF;">}</span> <span style="color: #000080;font-style:italic;">-- valid digits, see bump()</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">hlen</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span>
|
||||
<span style="color: #000000;">cpow</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">10</span> <span style="color: #000080;font-style:italic;">-- cyclops power (of 10)</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">n</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1_000_000_000</span>
|
||||
<span style="color: #004080;">atom</span> <span style="color: #000000;">hlen2</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
|
||||
<span style="color: #008080;">while</span> <span style="color: #000000;">n</span><span style="color: #0000FF;">></span><span style="color: #000000;">hlen2</span> <span style="color: #008080;">do</span>
|
||||
<span style="color: #000000;">n</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">hlen2</span>
|
||||
<span style="color: #000000;">half</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">bump</span><span style="color: #0000FF;">(</span><span style="color: #000000;">half</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">hlen</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">half</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">hlen2</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">power</span><span style="color: #0000FF;">(</span><span style="color: #000000;">hlen</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #000000;">cpow</span> <span style="color: #0000FF;">*=</span> <span style="color: #000000;">10</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">while</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">left</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">floor</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">/</span><span style="color: #000000;">hlen</span><span style="color: #0000FF;">)+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- half[] before the 0</span>
|
||||
<span style="color: #000000;">right</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">remainder</span><span style="color: #0000FF;">(</span><span style="color: #000000;">n</span><span style="color: #0000FF;">,</span><span style="color: #000000;">hlen</span><span style="color: #0000FF;">)+</span><span style="color: #000000;">1</span> <span style="color: #000080;font-style:italic;">-- half[] after the 0</span>
|
||||
<span style="color: #004080;">string</span> <span style="color: #000000;">fmt</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"The 1,000,000,000th cyclops number is %d (%s)\n"</span><span style="color: #0000FF;">,</span>
|
||||
<span style="color: #000000;">e</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">elapsed</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">time</span><span style="color: #0000FF;">()-</span><span style="color: #000000;">t0</span><span style="color: #0000FF;">)</span>
|
||||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">fmt</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">half</span><span style="color: #0000FF;">[</span><span style="color: #000000;">left</span><span style="color: #0000FF;">]*</span><span style="color: #000000;">cpow</span><span style="color: #0000FF;">+</span><span style="color: #000000;">half</span><span style="color: #0000FF;">[</span><span style="color: #000000;">right</span><span style="color: #0000FF;">],</span><span style="color: #000000;">e</span><span style="color: #0000FF;">})</span>
|
||||
<!--
|
||||
procedure nth_cyclops(atom n)
|
||||
string cyclops = "0"
|
||||
if n>1 then
|
||||
atom hlen = 1, hlen2 = 1, w = n-1, digits = 0
|
||||
while w>=hlen2 do
|
||||
w -= hlen2
|
||||
hlen *= 9
|
||||
hlen2 = power(hlen,2)
|
||||
digits += 1
|
||||
end while
|
||||
string hf = sprintf("%%0%da/%%0%da",digits)
|
||||
cyclops = sq_add(1,sprintf(hf,{{9,floor(w/hlen)},{9,round(remainder(w,hlen))}}))
|
||||
end if
|
||||
string fmt = "The %,d%s cyclops number is %s%s\n",
|
||||
e = elapsed(time()-t0,0.1," (%s)")
|
||||
printf(1,fmt,{n,ord(n),cyclops,e})
|
||||
end procedure
|
||||
for n=0 to iff(machine_bits()=32?15:18) do
|
||||
nth_cyclops(power(10,n))
|
||||
end for
|
||||
?elapsed(time()-t0)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
-- 22 Mar 2025
|
||||
include Settings
|
||||
-- 23 Aug 2025
|
||||
include Setting
|
||||
|
||||
say 'CYCLOPS NUMBERS'
|
||||
say version
|
||||
|
|
@ -99,7 +99,4 @@ do i = 2 to cycl.0
|
|||
end
|
||||
return
|
||||
|
||||
include Sequences
|
||||
include Numbers
|
||||
include Functions
|
||||
include Abend
|
||||
include Math
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue