35 lines
824 B
Text
35 lines
824 B
Text
program stern_brocot_sequence;
|
|
s := stern(1200);
|
|
|
|
print("First 15 elements:", s(1..15));
|
|
|
|
loop for n in [1..10] with 100 do
|
|
if exists k = s(i) | k = n then
|
|
print("First", n, "at", i);
|
|
end if;
|
|
end loop;
|
|
|
|
gcds := [gcd(s(i-1), s(i)) : i in [2..1000]];
|
|
|
|
if exists g = gcds(i) | g /= 1 then
|
|
print("The GCD of the pair at", i, "is not 1.");
|
|
else
|
|
print("All GCDs of consecutive pairs up to 1000 are 1.");
|
|
end if;
|
|
|
|
proc stern(n);
|
|
s := [1, 1];
|
|
loop for i in [2..n div 2] do
|
|
s(i*2-1) := s(i) + s(i-1);
|
|
s(i*2) := s(i);
|
|
end loop;
|
|
return s;
|
|
end proc;
|
|
|
|
proc gcd(a,b);
|
|
loop while b/=0 do
|
|
[a, b] := [b, a mod b];
|
|
end loop;
|
|
return a;
|
|
end proc;
|
|
end program;
|