A189979 Number of right triangles, distinct up to congruence, on an n X n grid (or geoboard).
0, 1, 4, 9, 17, 26, 39, 53, 71, 91, 114, 136, 169, 197, 231, 267, 310, 346, 397, 437, 492, 548, 606, 654, 729, 791, 858, 928, 1007, 1071, 1173, 1241, 1333, 1423, 1509, 1600, 1728, 1814, 1912, 2015, 2144
Offset: 1
Examples
For n=3 the four right triangles are: **. *.* *.* .*. *.. *.. ... *.. ... ... *.. .*.
Programs
-
Maple
Triangles:=proc(n) local TriangleSet,i,j,k,l,A,B,C; TriangleSet:={}: for i from 0 to n do for j from 0 to n do for k from 0 to n do for l from 0 to n do A:=i^2+j^2: B:=k^2+l^2: C:=(i-k)^2+(j-l)^2: if A^2+B^2+C^2<>2*(A*B+B*C+C*A) then TriangleSet:={op(TriangleSet),sort([sqrt(A),sqrt(B),sqrt(C)])}: fi: od: od: od: od: return(TriangleSet); end: IsRectangularTriangle:=proc(T) if T[1]^2+T[2]^2=T[3]^2 or T[1]^2+T[3]^2=T[2]^2 or T[2]^2+T[3]^2=T[1]^2 then true else false fi: end: a:=proc(n) local TriangleSet,RectangularTriangleSet,i; TriangleSet:=Triangles(n): RectangularTriangleSet:={}: for i from 1 to nops(TriangleSet) do if IsRectangularTriangle(TriangleSet[i]) then RectangularTriangleSet:={op(RectangularTriangleSet),TriangleSet[i]} fi: od: return(nops(RectangularTriangleSet)); end:
Extensions
a(21) through a(40) from Martin Renner, May 08 2011