51 lines
778 B
Text
51 lines
778 B
Text
global sb[] .
|
|
proc sternbrocot n . .
|
|
sb[] = [ 1 1 ]
|
|
pos = 2
|
|
repeat
|
|
c = sb[pos]
|
|
sb[] &= c + sb[pos - 1]
|
|
sb[] &= c
|
|
pos += 1
|
|
until len sb[] >= n
|
|
.
|
|
.
|
|
func first v .
|
|
for i to len sb[]
|
|
if v <> 0
|
|
if sb[i] = v
|
|
return i
|
|
.
|
|
else
|
|
if sb[i] <> 0
|
|
return i
|
|
.
|
|
.
|
|
.
|
|
return 0
|
|
.
|
|
func gcd x y .
|
|
if y = 0
|
|
return x
|
|
.
|
|
return gcd y (x mod y)
|
|
.
|
|
func$ task5 .
|
|
for i to 1000
|
|
if gcd sb[i] sb[i + 1] <> 1
|
|
return "FAIL"
|
|
.
|
|
.
|
|
return "PASS"
|
|
.
|
|
sternbrocot 10000
|
|
write "Task 2: "
|
|
for i to 15
|
|
write sb[i] & " "
|
|
.
|
|
print "\n\nTask 3:"
|
|
for i to 10
|
|
print "\t" & i & " " & first i
|
|
.
|
|
print "\nTask 4: " & first 100
|
|
print "\nTask 5: " & task5
|