36 lines
963 B
Ada
36 lines
963 B
Ada
with Ada.Text_IO;
|
|
|
|
procedure Van_Eck_Sequence is
|
|
|
|
Sequence : array (Natural range 1 .. 1_000) of Natural;
|
|
|
|
procedure Calculate_Sequence is
|
|
begin
|
|
Sequence (Sequence'First) := 0;
|
|
for Index in Sequence'First .. Sequence'Last - 1 loop
|
|
Sequence (Index + 1) := 0;
|
|
for I in reverse Sequence'First .. Index - 1 loop
|
|
if Sequence (I) = Sequence (Index) then
|
|
Sequence (Index + 1) := Index - I;
|
|
exit;
|
|
end if;
|
|
end loop;
|
|
end loop;
|
|
end Calculate_Sequence;
|
|
|
|
procedure Show (First, Last : in Positive) is
|
|
use Ada.Text_IO;
|
|
begin
|
|
Put ("Element" & First'Image & " .." & Last'Image & " of Van Eck sequence: ");
|
|
for I in First .. Last loop
|
|
Put (Sequence (I)'Image);
|
|
end loop;
|
|
New_Line;
|
|
end Show;
|
|
|
|
begin
|
|
Calculate_Sequence;
|
|
Show (First => 1, Last => 10);
|
|
Show (First => 991, Last => 1_000);
|
|
end Van_Eck_Sequence;
|