RosettaCodeData/Task/Yellowstone-sequence/YAMLScript/yellowstone-sequence.ys

25 lines
421 B
Plaintext

!YS-v0
defn main(n=30):
say: yellow(n)
defn yellow(n):
a =: +[1 2 3]
b =: (1 .. 3).zipmap([true]:cycle)
i =: 4
loop a a, b b, i i:
if n > a.#:
? if b.$i.! &&
(i.gcd(a.$) == 1) &&
(i.gcd(a:butlast.$) > 1)
: recur:
a.conj(i), b.assoc(i true), 5
recur: a, b, i.++
=>: a
defn gcd(a b):
loop a a, b b:
if b.?:
recur b: a % b
else: a