// C# program for computing terms of A284125

List<long> A284125 = new List<long>();  
string s, s2, s3;
long max;
int k;
int count;

A284125.Add(0);
A284125.Add(0);

for (int n = 3; n < int.MaxValue; n++)
{
	rd.N = n;

	max = (long)Math.Pow(2, n - 1); // Inverting gives double count
	count = 0;

	for (long i = 0; i < max; i++)
	{
		s = Convert.ToString(i, 2).PadLeft(n, '0'); // Make binary with length n
		s2 = s.Substring(s.Length - 2);  // suffix size 2
		s3 = s.Substring(s.Length - 3);  // suffix size 3								 
		s = s.Remove(s.Length - 1);      // Remove last digit

		// Try size 3
		k = s.IndexOf(s3);
		if (k >= 0) continue; // suffix of size 3 occurs twice, not counted
										  
		// Try size 2
		k = s.IndexOf(s2);
		if (k >= 0)
		{
			// Two occurrences, count it
			count++;
		}
	}

	A284125.Add(2 * count);
}