func IsPrime(N); \Return 'true' if N is prime int N, D; [if N < 2 then return false; if (N&1) = 0 then return N = 2; if rem(N/3) = 0 then return N = 3; D:= 5; while D*D <= N do [if rem(N/D) = 0 then return false; D:= D+2; if rem(N/D) = 0 then return false; D:= D+4; ]; return true; ]; char Prime(1_000_000), S; int Diff, Diffs, Count, N, I, First, Last; int Str, Len; [for N:= 0 to 1_000_000-1 do Prime(N):= if IsPrime(N) then ^1 else ^0; Diffs:= [[2, 0, 0], [1, 0, 0], [2, 2+2, 0], [2, 4+2, 0], [4, 2+4, 0], [6, 4+6, 2+4+6]]; Str:= [ "101 ", "11 ", "10101 ", "1010001 ", "1000101 ", "1000001000101 "]; Len:= [ 3, 2, 5, 7, 7, 13]; for Diff:= 0 to 6-1 do [Count:= 0; for N:= 0 to 1_000_000-1 -13 do [S:= Str(Diff); for I:= 0 to Len(Diff)-1 do if S(I) # Prime(N+I) then I:= 100; if I < 100 then \have match [Count:= Count+1; if Count = 1 then First:= N; Last:= N; ]; ]; Text(0, "First: "); IntOut(0, First); for I:= 0 to 2 do if Diffs(Diff,I) # 0 then [ChOut(0, ^ ); IntOut(0, First+Diffs(Diff,I))]; Text(0, " Last: "); IntOut(0, Last); for I:= 0 to 2 do if Diffs(Diff,I) # 0 then [ChOut(0, ^ ); IntOut(0, Last+Diffs(Diff,I))]; Text(0, " Groups: "); IntOut(0, Count); CrLf(0); ]; ]