34 lines
963 B
Plaintext
34 lines
963 B
Plaintext
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
|