#!/usr/local/bin/cz -- use b Main: long max = 500000000 long k, v, a_max, a, b, c, c2 for k=1 ; ; ++k: v = k*(k+1)*(k+2)*(k+3) / 4 if v > max: break a_max = sqrt(v) for a=1; a<=a_max; ++a: b = v/a if a*b == v: c2 = a*a + b*b c = (long)round(sqrt(c2)) if c*c == c2: found() def found(): printf("%ld * %ld = %ld ; %ld^2 + %ld^2 = %ld^2 ; %ld*%ld*%ld*%ld/4 = %ld\n", a, b, v, a, b, c, k, k+1, k+2, k+3, v) # $ time ./triples # 12 * 35 = 420 ; 12^2 + 35^2 = 37^2 ; 5*6*7*8/4 = 420 # 20 * 21 = 420 ; 20^2 + 21^2 = 29^2 ; 5*6*7*8/4 = 420 # 28 * 45 = 1260 ; 28^2 + 45^2 = 53^2 ; 7*8*9*10/4 = 1260 # 20 * 99 = 1980 ; 20^2 + 99^2 = 101^2 ; 8*9*10*11/4 = 1980 # 119 * 120 = 14280 ; 119^2 + 120^2 = 169^2 ; 14*15*16*17/4 = 14280 # 120 * 1798 = 215760 ; 120^2 + 1798^2 = 1802^2 ; 29*30*31*32/4 = 215760 # 136 * 2310 = 314160 ; 136^2 + 2310^2 = 2314^2 ; 32*33*34*35/4 = 314160 # 1386 * 3120 = 4324320 ; 1386^2 + 3120^2 = 3414^2 ; 63*64*65*66/4 = 4324320 # 420 * 14697 = 6172740 ; 420^2 + 14697^2 = 14703^2 ; 69*70*71*72/4 = 6172740 # 444 * 16425 = 7292700 ; 444^2 + 16425^2 = 16431^2 ; 72*73*74*75/4 = 7292700 # 6678 * 24840 = 165881520 ; 6678^2 + 24840^2 = 25722^2 ; 159*160*161*162/4 = 165881520 # # real 0m0.085s