This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A325602 #26 May 31 2019 13:06:28 %S A325602 14,14,20,44,39,21,45,34,50,21,44,39,54,75,45,65,34,77,74,69,90,56,50, %T A325602 84,76,33,84,14,20,69,55,111,75,33,14,105,35,119,95,20,56,35,74,90, %U A325602 110,104,76,62,20,35 %N A325602 Lower left-hand x-coordinate for 2 X 2 invisible forest with 0 < x < y. %C A325602 These are 2 X 2 rectangles of lattice points not visible along straight lines of sight from the origin. The sequence is ordered by Euclidean distance from (0,0). %H A325602 Benjamin Hutz, <a href="/A325602/b325602.txt">Table of n, a(n) for n = 1..1000</a> %H A325602 E. Goins, P. Harris, B. Kubik, A. Mbirika, <a href="https://arxiv.org/abs/1710.04554">Lattice Point Visibility on Generalized Lines of Sight</a>, arXiv:1710.04554 [math.NT], 2017; Amer. Math. Monthly 125 (2018) 593-601. %H A325602 F. Herzog, B. M. Stewart, <a href="https://www.jstor.org/stable/2317753">Patterns of Visible and Nonvisible Lattice Points</a>, Amer. Math. Monthly 78 (1971) 487-496 %H A325602 S. Laishram, F. Luca, <a href="https://cs.uwaterloo.ca/journals/JIS/VOL18/Laishram/lai2.html">Rectangles Of Nonvisible Lattice Points</a>, J. Int. Seq. 18 (2015) 15.10.8. %e A325602 (14,20), (14,35), (20,35), (44,54), (39,65), (21,77), (45,69), (34,84), ... %o A325602 (Python) def is_nxn(x,y,n): %o A325602 if all([gcd(x+a,y+b) != 1 for a in range(n) for b in range(n)]): %o A325602 return True %o A325602 return False %o A325602 def insert_item(pts, item, index): %o A325602 N = len(pts) %o A325602 if N == 0: %o A325602 return [item] %o A325602 elif N == 1: %o A325602 if item[index] < pts[0][index]: %o A325602 pts.insert(0,item) %o A325602 else: %o A325602 pts.append(item) %o A325602 return pts %o A325602 else: #binary insertion %o A325602 left = 1 %o A325602 right = N %o A325602 mid = ((left + right)/2).floor() %o A325602 if item[index] < pts[mid][index]: %o A325602 # item goes into first half %o A325602 return insert_item(pts[:mid], item, index) + pts[mid:N] %o A325602 else: %o A325602 # item goes into second half %o A325602 return pts[:mid] + insert_item(pts[mid:N], item, index) %o A325602 B=1200 %o A325602 L=[] %o A325602 for x in range(1,B): %o A325602 for y in range(x+1,B): %o A325602 if is_nxn(x,y,n=2): %o A325602 G=[x,y,x^2+y^2] %o A325602 L=insert_item(L, G, 2) %Y A325602 Cf. A157426, A157427, A157428, A157429. %Y A325602 Cf. A325603, A325604, A325605, A325606, A325607. %K A325602 nonn %O A325602 1,1 %A A325602 _Benjamin Hutz_, May 10 2019