(*
Pattern Explanation:
The sequence is: 8, 64, 80, 136, 152
Compute the differences between consecutive numbers:
64 - 8 = 56
80 - 64 = 16
136 - 80 = 56
152 - 136 = 16
The pattern clearly alternates:
+56, +16, +56, +16, ...
8 + 56 = 64
64 + 16 = 80
80 + 56 = 136
136 + 16 = 152
This alternating pattern continues forever.
Even-term formula:
Term(2) = 64
Each pair adds: 56 + 16 = 72
Number of even terms up to Term(100):
100 / 2 = 50 even terms
Number of full pairs after Term(2):
50 - 1 = 49 pairs
Formula for even terms:
Term(n) = 64 + 72 × (n/2 - 1)
For n = 100:
Term(100) = 64 + 72 × 49 = 3592
*)
program NextSequenceNumber;
{$mode objfpc}
uses
SysUtils;
// ------------------------------------------------------------
// Function to compute the nth term using the even-term formula
// ------------------------------------------------------------
function NthTerm(n: Integer): Integer;
var
evenTerm: Integer;
begin
if n = 1 then
begin
Result := 8; // first term is fixed
Exit;
end;
if (n mod 2 = 0) then
begin
// Even term formula
Result := 64 + 72 * (n div 2 - 1);
end
else
begin
// Odd term = previous even term + 16
evenTerm := 64 + 72 * ((n - 1) div 2 - 1);
Result := evenTerm + 16;
end;
end;
var
n: Integer;
resultValue: Integer;
begin
n := 100;
resultValue := NthTerm(n);
WriteLn('The 100th term of the sequence is: ', resultValue);
end.
(*
Run:
The 100th term of the sequence is: 3592
*)