include "NSLog.incl" NSInteger local fn GCD( a as NSInteger, b as NSInteger ) if ( a == 0 ) then return b return fn GCD( b % a, a ) end fn = 0 void local fn CalcYellowstoneSequence( terms as int ) CFMutableArrayRef sequence = fn MutableArrayWithObjects( @1, @2, @3, NULL ) for int n = 3 to terms - 1 NSInteger prev1 = fn NumberIntegerValue( fn ArrayObjectAtIndex( sequence, n - 1 ) ) NSInteger prev2 = fn NumberIntegerValue( fn ArrayObjectAtIndex( sequence, n - 2 ) ) NSInteger candidate = 1 while (YES) if ( !fn ArrayContainsObject( sequence, @(candidate) ) && fn GCD( candidate, prev1 ) == 1 && fn GCD( candidate, prev2 ) > 1 ) MutableArrayAddObject( sequence, @(candidate) ) break end if candidate++ wend next NSLog( @"Yellowstone sequence up to %d terms:", terms ) for CFNumberRef num in sequence NSLog( @"%@ \b", num ) next end fn fn CalcYellowstoneSequence( 30 ) HandleEvents