23 lines
704 B
Awk
23 lines
704 B
Awk
# syntax: GAWK -f PYTHAGOREAN_TRIPLES.AWK
|
|
# converted from Go
|
|
BEGIN {
|
|
printf("%5s %11s %11s %11s %s\n","limit","limit","triples","primitives","seconds")
|
|
for (max_peri=10; max_peri<=1E9; max_peri*=10) {
|
|
t = systime()
|
|
prim = 0
|
|
total = 0
|
|
new_tri(3,4,5)
|
|
printf("10^%-2d %11d %11d %11d %d\n",++n,max_peri,total,prim,systime()-t)
|
|
}
|
|
exit(0)
|
|
}
|
|
function new_tri(s0,s1,s2, p) {
|
|
p = s0 + s1 + s2
|
|
if (p <= max_peri) {
|
|
prim++
|
|
total += int(max_peri / p)
|
|
new_tri(+1*s0-2*s1+2*s2,+2*s0-1*s1+2*s2,+2*s0-2*s1+3*s2)
|
|
new_tri(+1*s0+2*s1+2*s2,+2*s0+1*s1+2*s2,+2*s0+2*s1+3*s2)
|
|
new_tri(-1*s0+2*s1+2*s2,-2*s0+1*s1+2*s2,-2*s0+2*s1+3*s2)
|
|
}
|
|
}
|