Juggler sequence: Difference between revisions

(Added 11l)
Line 93:
38 3 38 0
39 14 233046 3
</pre>
 
{{trans|Python}}
 
<lang 11l>F isqrt(BigInt x)
assert(x >= 0)
 
V q = BigInt(1)
L q <= x
q *= 4
 
V z = x
V r = BigInt(0)
L q > 1
q I/= 4
V t = z - r - q
r I/= 2
I t >= 0
z = t
r += q
 
R r
 
F juggler(k, countdig = 1B, maxiters = 1000)
V (m, maxj, maxjpos) = (BigInt(k), BigInt(k), 0)
L(i) 1 .< maxiters
m = I m % 2 == 0 {isqrt(m)} E isqrt(m * m * m)
I m >= maxj
(maxj, maxjpos) = (m, i)
I m == 1
print(f:‘{k:9}{commatize(i):6}{maxjpos:6}{commatize(I countdig {String(maxj).len} E maxj):20}{I countdig {‘ digits’} E ‘’}’)
R i
 
print(‘ERROR: Juggler series starting with ’k‘ did not converge in ’maxiters‘ iterations’)
 
print(" n l(n) i(n) h(n) or d(n)\n-------------------------------------------")
L(k) 20..39
juggler(k, 0B)
 
L(k) [113, 173, 193, 2183, 11229, 15065]
juggler(k)</lang>
 
{{out}}
<pre>
n l(n) i(n) h(n) or d(n)
-------------------------------------------
20 3 0 20
21 9 4 140
22 3 0 22
23 9 1 110
24 3 0 24
25 11 3 52,214
26 6 3 36
27 6 1 140
28 6 3 36
29 9 1 156
30 6 3 36
31 6 1 172
32 6 3 36
33 8 2 2,598
34 6 3 36
35 8 2 2,978
36 3 0 36
37 17 8 24,906,114,455,136
38 3 0 38
39 14 3 233,046
113 16 9 27 digits
173 32 17 82 digits
193 73 47 271 digits
2183 72 32 5,929 digits
11229 101 54 8,201 digits
15065 66 25 11,723 digits
</pre>
 
1,480

edits