35 lines
807 B
Text
35 lines
807 B
Text
F ekg(n, limit)
|
||
Set[Int] values
|
||
assert(n >= 2)
|
||
V r = [(1, 1), (2, n)]
|
||
values.add(n)
|
||
V i = 3
|
||
V prev = n
|
||
L i <= limit
|
||
V val = 2
|
||
L
|
||
I val !C values & gcd(val, prev) != 1
|
||
values.add(val)
|
||
r [+]= (i, val)
|
||
prev = val
|
||
L.break
|
||
val++
|
||
i++
|
||
R r
|
||
|
||
L(n) [2, 5, 7, 9, 10]
|
||
[Int] result
|
||
L(i, val) ekg(n, 10)
|
||
result [+]= val
|
||
print((‘EKG(’n‘):’).ljust(8)‘ ’result.join(‘, ’))
|
||
|
||
V ekg5 = [0] * 101
|
||
V ekg7 = [0] * 101
|
||
L(i, val) ekg(5, 100) {ekg5[i] = val}
|
||
L(i, val) ekg(7, 100) {ekg7[i] = val}
|
||
V convIndex = 0
|
||
L(i) 2..100
|
||
I ekg5[i] == ekg7[i] & sorted(ekg5[1 .< i]) == sorted(ekg7[1 .< i])
|
||
convIndex = i
|
||
L.break
|
||
print(‘EKG(5) and EKG(7) converge at index ’convIndex‘.’)
|