Stern-Brocot sequence: Difference between revisions

Add ALGOL-M
(Add ALGOL-M)
Line 561:
First 9 at 35; First 10 at 39; First 100 at 1179.
Correct: The first 999 consecutive pairs are relative prime!</pre>
 
=={{header|ALGOL-M}}==
<lang algolm>begin
integer array S[1:1200];
integer i,ok;
 
integer function gcd(a,b);
integer a,b;
gcd :=
if a>b then gcd(a-b,b)
else if a<b then gcd(a,b-a)
else a;
integer function first(n);
integer n;
begin
integer i;
i := 1;
while S[i]<>n do i := i + 1;
first := i;
end;
S[1] := S[2] := 1;
for i := 2 step 1 until 600 do
begin
S[i*2-1] := S[i] + S[i-1];
S[i*2] := S[i];
end;
 
write("First 15 numbers:");
for i := 1 step 1 until 15 do
begin
if i-i/5*5=1 then write(S[i]) else writeon(S[i]);
end;
 
write("");
write("First occurrence:");
for i := 1 step 1 until 10 do write(i, " at", first(i));
write(100, " at", first(100));
 
ok := 1;
for i := 1 step 1 until 999 do
begin
if gcd(S[i], S[i+1]) <> 1 then
begin
write("gcd",S[i],",",S[i+1],"<> 1");
ok := 0;
end;
end;
if ok = 1 then write("The GCD of each pair of consecutive members is 1.");
end</lang>
{{out}}
<pre>First 15 numbers:
1 1 2 1 3
2 3 1 4 3
5 2 5 3 4
 
First occurrence:
1 at 1
2 at 3
3 at 5
4 at 9
5 at 11
6 at 33
7 at 19
8 at 21
9 at 35
10 at 39
100 at 1179
The GCD of each pair of consecutive members is 1.</pre>
 
=={{header|APL}}==
2,114

edits