This header plots the critical line of the Riemann Zeta Function.  A complete understanding wins a $1,000,000 prize.
. . .
Main   Links   Orders   Post   Next Page   Next + 10

Dividing an integer triangle into smaller integer triangles.  Solutions by William Watson and Timothy Firman.  Drawn to scale by Ed Pegg Jr.


William Watson and Timothy Firman sent me solutions independently, at about the same time.  In a strange coincidence, they happen to know each other.  They used to play bridge together at Caltech.  All of these triangles are minimal by longest side, without any parallel lines, isosceles triangles, or similar triangles.

Here is William Watson's solution in text format.  4.4 and 4.11 can be updated to the figures above.
*3.0  lside 22 per 49    8 22 19    8  6  4    6 22 17    4 17 19
*3.1  lside 17 per 39    9 13 17    9  5 11   11  3 13   13  5 17
*3.2  lside 17 per 39    9 13 17    6  9 13    3  8  9   13  5 17
*3.3  lside 15 per 40   13 15 12   13 10  5   10  9  5   10  6 12
*4.1  lside 26 per 70   26 25 19   26 13 15   13 20  9   15  9 18   18  5 19
*4.2  lside 37 per 98   37 36 25   37 27 14   27 36 15   14  5 17   17 10 25
*4.3  lside 26 per 64   18 20 26   18  9 15    9 10  5    5 10 13   15 13 26
*4.4  lside 38 per 108  34 36 38   34 21 22   27 38 16   15 24 36    7  6  8
*4.5  lside 24 per 60   15 21 24    8  7  3    7 12 13   15  9 21    7 13 15
*4.6  lside 21 per 49   17 21 11   17  5 13   13  9  6    9  8  3    9  8 11
*4.7  lside 27 per 64   25 12 27   20  9 13    9 10 13    5  9 10   26  3 27
*4.8  lside 24 per 69   22 23 24   22 18  5   16 11 15    2 12 11   20 11 24
*4.9  lside 18 per 50   17 18 15   17  5 13   13  3 11   11  8  9   18  6 16
*4.10 lside 24 per 64   18 24 22   18 15 17   17  5 13    8  9 11   13  3 11
*4.11 lside 29 per 64   17 18 29   17  5 13    8  9 11   22  9 29   13  3 11
*4.12 lside 25 per 70   25 21 24   15 16 23   10  3  9    9 15 16   23  3 24
*4.13 lside 24 per 63   21 18 24    6 19 23    4 17 19   12 11  9   23  2 24
*4.14 lside 29 per 72   16 27 29   16 13 11   13  6  9    9 12 11   22  9 29
*4.15 lside 27 per 60    9 24 27    9  5 11   11  3 13   13  5 17   17 11 21
*4.16 lside 21 per 51   13 21 17   13  7  8    7  5  3   10 16 14    8  7  3
*4.17 lside 29 per 80   26 25 29   13 16 25   13 12 10   12 15  6   25 10 29
*4.18 lside 20 per 54   20 15 19   20 13  9   13 10  9    3  5  6   15  6 19
*4.19 lside 24 per 54   13 24 17   13  9  6    9  3  8    9  8 11   11  8 17
*4.20 lside 23 per 52   16 13 23   14  4 17    2  3  4   17  4 19   19  6 23
*4.21 lside 26 per 70   19 26 25   19 15  6   15 13 12   10 13  5   18 10 20
*4.22 lside 22 per 56   16 22 18   11  9 13    5 11  9    9 11 12   13  9  6
*4.23 lside 26 per 66   18 22 26   12  9 11    9  6 13   13 16 11   22  6 26

Here is Timothy Firman's Fortran Source code.
Here they are; I've included some output after each.  I didn't write complete checking for similar, isosceles, parellel lines, etc. (As I'm sure you've guessed)

A (a.k.a. 3.1)
generates some false minima.

      real*8 a,b,c,d,e,f,cc,cb,cd,ce,ab,sq
      do 2 a=5.,50.,1.
        do 3 b=(mod(a,1.)+1.),(a-1.),1.
         do 4 c=(a-b+1.),(b-1.),1.
           cc=((a*a+b*b-c*c)/(2.*a*b))
           cb=((a*a-b*b+c*c)/(2.*a*c))
           ab=dacos(cb)
           do 5 d=2.,(a-1.),1.
             do 6 e=2.,(a-1.),1.
               if((d+e).ge.(b+c))goto 6
               if((d+e).le.a)goto 6
               if(d.eq.e)goto 6
               ce=((a*a+d*d-e*e)/(2.*a*d))
               if(ce.le.cc)goto 6
               cd=((a*a-d*d+e*e)/(2.*a*e))
               if(cd.le.cb)goto 6
               sq=(c*c+e*e-(2.*c*e*dcos(ab-dacos(cd))))
       if((sq-dreal(int(sq))).lt.(.00001))sq=dreal(int(sq))
       if((sq-dreal(int(sq))).gt.(.99999))sq=dreal(int(sq))+1.
       if((mod(sq,1.)).ne.0.)goto 6
               f=DSQRT(sq)
       if((f-dreal(int(f))).lt.(.0001))f=dreal(int(f))
       if((f-dreal(int(f))).gt.(.9999))f=dreal(int(f))+1.
       if(((f+d).eq.b).or.((f+e).eq.c)) goto 6
               if((mod(f,1.)).eq.0.)write(6,9) a,b,c,d,e,f
 9             format(6f12.8)
 6            continue
 5         continue
 4       continue
 3      continue
 2    continue
 90   end

 22.00000000 19.00000000  8.00000000 17.00000000  6.00000000  4.00000000
 23.00000000 21.00000000 20.00000000 13.00000000 14.00000000 10.00000000
 26.00000000 20.00000000 18.00000000 13.00000000 15.00000000  9.00000000
 28.00000000 26.00000000 24.00000000 21.00000000 17.00000000  8.00000000
 28.00000000 27.00000000 23.00000000 20.00000000 18.00000000  8.00000000
 30.00000000 27.00000000 22.00000000 23.00000000 16.00000000  7.00000000
 30.00000000 28.00000000 21.00000000 22.00000000 17.00000000  7.00000000
 32.00000000 30.00000000 13.00000000 28.00000000  6.00000000  8.00000000
 32.00000000 30.00000000 26.00000000 15.00000000 19.00000000 18.00000000
 33.00000000 24.00000000 22.00000000 23.00000000 13.00000000 10.00000000

4
requires input error threshold; will still generate the correct minimum
when it is equal to .0000000000001, but won't if it equals zero.
 

      real*8 a,b,c,d,e,f,g,h,i,ci,ih,cfb,sih,cfc
      real*8 cc,cb,ce,cd,aca,acb,aab,ach,abh,t
      read(5,*)t
      do 2 a=5.,100.,1.
        do 3 b=(mod(a,1.)+1.),(a-1.),1.
         do 4 c=(a-b+1.),(b-1.),1.
           cc=((a*a+b*b-c*c)/(2.*a*b))
           cb=((a*a-b*b+c*c)/(2.*a*c))
           aca=dacos(cb)
           aab=dacos(cc)
           acb=dacos(((b*b-a*a+c*c)/(2.*b*c)))
           do 5 d=2.,(a-1.),1.
             do 6 e=2.,(a-1.),1.
               if((d+e).ge.(b+c))goto 6
               if((d+e).le.a)goto 6
               if(d.eq.e)goto 6
               ce=((a*a+d*d-e*e)/(2.*a*d))
               if(ce.le.cc)goto 6
               cd=((a*a-d*d+e*e)/(2.*a*e))
               if(cd.le.cb)goto 6
               ach=aca-dacos(cd)
               abh=aab-dacos(ce)
               cfb=dcos(aab-dacos(ce))
               cfc=dcos(aca-dacos(cd))
               do 7 f=2.,(d-2.),1.
                 g=DSQRT(f*f+b*b-(2.*f*b*cfb))
         if((g-dreal(int(g))).lt.t)g=dreal(int(g))
         if((g-dreal(int(g))).gt.(1.-t))g=dreal(int(g))+1.
                 if((mod(g,1.)).ne.0.)goto 7
                 ci=acb-dacos((g*g+b*b-f*f)/(2.*g*b))
                 sih=dsin(ach+ci)
                 h=c*dsin(ci)/sih
         if((h-dreal(int(h))).lt.t)h=dreal(int(h))
         if((h-dreal(int(h))).gt.(1.-t))h=dreal(int(h))+1.
                 if((mod(h,1.)).ne.0.)goto 7
                 i=c*dsin(ach)/sih
         if((i-dreal(int(i))).lt.t)i=dreal(int(i))
         if((i-dreal(int(i))).gt.(1.-t))i=dreal(int(i))+1.
                 if((mod(i,1.)).ne.0.)goto 7
                 write(6,9) a,b,c,d,e,f,g,h,i
 7             continue
               do 8 f=2.,(e-2.),1.
                 g=DSQRT(f*f+c*c-(2.*f*c*cfc))
         if((g-dreal(int(g))).lt.t)g=dreal(int(g))
         if((g-dreal(int(g))).gt.(1.-t))g=dreal(int(g))+1.
                 if((mod(g,1.)).ne.0.)goto 8
                 ci=acb-dacos((g*g+c*c-f*f)/(2.*g*c))
                 sih=dsin(abh+ci)
                 h=b*dsin(ci)/sih
         if((h-dreal(int(h))).lt.t)h=dreal(int(h))
         if((h-dreal(int(h))).gt.(1.-t))h=dreal(int(h))+1.
                 if((mod(h,1.)).ne.0.)goto 8
                 i=b*dsin(abh)/sih
         if((i-dreal(int(i))).lt.t)i=dreal(int(i))
         if((i-dreal(int(i))).gt.(1.-t))i=dreal(int(i))+1.
                 if((mod(i,1.)).ne.0.)goto 8
                 write(6,10) a,b,c,d,e,f,g,h,i
 8             continue
 6            continue
 5         continue
 4       continue
 3      continue
 2    continue
 9             format('g on d',9f8.4)
 10            format('g on e',9f8.4)
 90   end

sample output:

g on d 21.0000 19.0000 16.0000 15.0000  9.0000  7.0000 13.0000 14.0000  6.0000
g on e 23.0000 22.0000 15.0000 12.0000 14.0000 10.0000 10.0000 18.0000  5.0000
g on d 25.0000 21.0000 18.0000 17.0000  9.0000  8.0000 15.0000 16.0000 10.0000
g on d 27.0000 24.0000 21.0000 21.0000  8.0000 18.0000 14.0000 12.0000 11.0000
g on d 32.0000 24.0000 16.0000 20.0000 13.0000 16.0000 10.0000 16.0000  8.0000
g on e 32.0000 28.0000 24.0000 13.0000 20.0000 12.0000 18.0000 21.0000 14.0000
g on e 32.0000 30.0000 22.0000 12.0000 22.0000 12.0000 17.0000 24.0000  9.0000
g on e 34.0000 28.0000 26.0000 21.0000 20.0000 16.0000 12.0000 24.0000  8.0000
g on d 35.0000 30.0000 25.0000 28.0000  9.0000 14.0000 20.0000 21.0000 10.0000
g on e 37.0000 29.0000 18.0000 20.0000 18.0000  9.0000 12.0000 28.0000  8.0000
g on e 38.0000 31.0000 21.0000 11.0000 28.0000 24.0000 18.0000 18.0000 14.0000
g on e 38.0000 36.0000 34.0000 16.0000 27.0000 21.0000 22.0000 24.0000 15.0000
g on d 38.0000 36.0000 34.0000 28.0000 11.0000 18.0000 27.0000 21.0000 22.0000

4.16

      real*8 a,b,c,d,e,f,g,h,i,cc,cb,cd,ce,ab,ca,t
      read(5,*)t
      do 2 a=6.,200.,1.
        do 3 b=(mod(a,1.)+1.),(a-1.),1.
         do 4 c=(a-b+1.),(b-1.),1.
           cc=((a*a+b*b-c*c)/(2.*a*b))
           cb=((a*a-b*b+c*c)/(2.*a*c))
           ca=((b*b-a*a+c*c)/(2.*b*c))
           do 5 d=2.,(b-2.),1.
             do 6 e=2.,(c-2.),1.
               if(d.eq.e)goto 6
               f=DSQRT(d*d+e*e-(2.*d*e*ca))
       if((f-dreal(int(f))).lt.t)f=dreal(int(f))
       if((f-dreal(int(f))).gt.(1.-t))f=dreal(int(f))+1.
               if((mod(f,1.)).eq.0.) then
                 cdf=(f*f+d*d-e*e)/(2.*f*d)
                 cef=(e*e+f*f-d*d)/(2.*e*f)
                 do 7 g=2.,(f-2.),1.
                   h=DSQRT((c-e)*(c-e)+g*g+(2.*(c-e)*g*cef))
           if((h-dreal(int(h))).lt.t)h=dreal(int(h))
           if((h-dreal(int(h))).gt.(1.-t))h=dreal(int(h))+1.
                   if((mod(h,1.)).eq.0.)then
                   i=DSQRT((b-d)*(b-d)+(f-g)*(f-g)+(2.*(b-d)*(f-g)*cdf))
           if((i-dreal(int(i))).lt.t)i=dreal(int(i))
           if((i-dreal(int(i))).gt.(1.-t))i=dreal(int(i))+1.
                   if((mod(i,1.)).eq.0.)write(6,10) a,b,c,d,e,f,g,h,i
                   endif
 7               continue
               endif
 6           continue
             do 8 e=2.,(a-2.),1.
               if(d.eq.e)goto 8
               f=DSQRT(d*d+e*e-(2.*d*e*cc))
       if((f-dreal(int(f))).lt.t)f=dreal(int(f))
       if((f-dreal(int(f))).gt.(1.-t))f=dreal(int(f))+1.
               if((mod(f,1.)).eq.0.) then
                 cdf=(f*f+d*d-e*e)/(2.*f*d)
                 cef=(e*e+f*f-d*d)/(2.*e*f)
                 do 17 g=2.,(f-2.),1.
                   h=DSQRT((a-e)*(a-e)+g*g+(2.*(a-e)*g*cef))
           if((h-dreal(int(h))).lt.t)h=dreal(int(h))
           if((h-dreal(int(h))).gt.(1.-t))h=dreal(int(h))+1.
                   if((mod(h,1.)).eq.0.)then
                   i=DSQRT((b-d)*(b-d)+(f-g)*(f-g)+(2.*(b-d)*(f-g)*cdf))
           if((i-dreal(int(i))).lt.t)i=dreal(int(i))
           if((i-dreal(int(i))).gt.(1.-t))i=dreal(int(i))+1.
                   if((mod(i,1.)).eq.0.)write(6,11) a,b,c,d,e,f,g,h,i
                   endif
 17              continue
               endif
 8           continue
 5         continue
           do 15 d=2.,(a-2.),1.
             do 16 e=2.,(c-2.),1.
               if(d.eq.e)goto 16
               f=DSQRT(d*d+e*e-(2.*d*e*cb))
       if((f-dreal(int(f))).lt.t)f=dreal(int(f))
       if((f-dreal(int(f))).gt.(1.-t))f=dreal(int(f))+1.
               if((mod(f,1.)).eq.0.) then
                 cdf=(f*f+d*d-e*e)/(2.*f*d)
                 cef=(e*e+f*f-d*d)/(2.*e*f)
                 do 27 g=2.,(f-2.),1.
                   h=DSQRT((c-e)*(c-e)+g*g+(2.*(c-e)*g*cef))
           if((h-dreal(int(h))).lt.t)h=dreal(int(h))
           if((h-dreal(int(h))).gt.(1.-t))h=dreal(int(h))+1.
                   if((mod(h,1.)).eq.0.)then
                   i=DSQRT((a-d)*(a-d)+(f-g)*(f-g)+(2.*(a-d)*(f-g)*cdf))
           if((i-dreal(int(i))).lt.t)i=dreal(int(i))
           if((i-dreal(int(i))).gt.(1.-t))i=dreal(int(i))+1.
                   if((mod(i,1.)).eq.0.)write(6,12) a,b,c,d,e,f,g,h,i
                   endif
 27              continue
               endif
 16          continue
 15        continue
 4       continue
 3      continue
 2    continue
 10                format('a  ',9f8.4)
 11                format('c  ',9f8.4)
 12                format('b  ',9f8.4)
 90   end

.000001
c   21.0000 17.0000 13.0000 14.0000 16.0000 10.0000  3.0000  7.0000  8.0000
c   22.0000 18.0000 16.0000  9.0000 11.0000  8.0000  3.0000 13.0000 11.0000
b   22.0000 19.0000  8.0000  8.0000  6.0000  7.0000  3.0000  4.0000 17.0000
c   24.0000 18.0000 12.0000 12.0000 16.0000  8.0000  5.0000 12.0000  6.0000
b   24.0000 20.0000 16.0000 18.0000 12.0000 15.0000  4.0000  6.0000 16.0000
a   24.0000 21.0000 15.0000 14.0000 10.0000 16.0000  3.0000  7.0000 19.0000
c   24.0000 21.0000 15.0000 14.0000 16.0000 10.0000  7.0000 13.0000  8.0000
c   24.0000 21.0000 15.0000 16.0000 14.0000 10.0000  7.0000 13.0000  7.0000
b   24.0000 21.0000 18.0000 16.0000 12.0000 14.0000  9.0000 12.0000 12.0000
c   26.0000 18.0000 16.0000  9.0000 13.0000  8.0000  5.0000 17.0000  9.0000

4.5
      real*8 a,b,c,d,e,f,g,h,i
      real*8 cc,cb,ce,cd,aca,acb,aab,ch,ci,ih,cfb,sih,t
      read(5,*)t
      do 2 a=6.,100.,1.
        do 3 b=(mod(a,1.)+1.),(a-1.),1.
        if (b.lt.5) goto 3
         do 4 c=(a-b+1.),(b-1.),1.
         if (c.lt.4) goto 4
           ca=((c*c+b*b-a*a)/(2.*c*b))
           cb=((a*a-b*b+c*c)/(2.*a*c))
           cc=((a*a+b*b-c*c)/(2.*a*b))
           do 5 d=2.,(a-2.),1.
             do 6 e=2.,(b-2.),1.
               if(d.eq.e)goto 6
               g=DSQRT(d*d+e*e-(2.*e*d*cc))
               if((g-dreal(int(g))).lt.t)g=dreal(int(g))
               if((g-dreal(int(g))).gt.(1.-t))g=dreal(int(g))+1.
               if((d.eq.g).or.(g.eq.e))goto 6
               if((mod(g,1.)).ne.0.)goto 6
               do 7 f=2.,(c-2.),1.
                 h=DSQRT(f*f+(a-d)*(a-d)-(2.*f*(a-d)*cb))
                 if((h-dreal(int(h))).lt.t)h=dreal(int(h))
                 if((h-dreal(int(h))).gt.(1.-t))h=dreal(int(h))+1.
                 if((mod(h,1.)).ne.0.)goto 7
                 i=DSQRT((c-f)*(c-f)+(b-e)*(b-e)-(2.*(c-f)*(b-e)*ca))
                 if((i-dreal(int(i))).lt.t)i=dreal(int(i))
                 if((i-dreal(int(i))).gt.(1.-t))i=dreal(int(i))+1.
                 if((mod(i,1.)).ne.0.)goto 7
                 if((h.eq.i).or.(i.eq.g).or.(i.eq.(b-e)))goto 7
                 if(i.eq.(c-f))goto 7
          if(((d.eq.(a/2))+(e.eq.(b/2))+(f.eq.(c/2))).ge.2)goto 7
                write(6,9) a,b,c,d,e,f,g,h,i
 7             continue
 6            continue
 5         continue
 4       continue
 3      continue
 2    continue
 9             format(9f8.4)
 90   end

t= .0000001
 18.0000 16.0000 14.0000  4.0000  9.0000  6.0000  7.0000 12.0000  9.0000
 20.0000 15.0000 10.0000  9.0000 12.0000  8.0000  6.0000  8.0000  4.0000
 20.0000 15.0000 10.0000 16.0000 12.0000  8.0000  8.0000  6.0000  4.0000
 24.0000 18.0000 12.0000 22.0000  6.0000  4.0000 17.0000  3.0000 16.0000
 24.0000 20.0000 16.0000 16.0000 15.0000 12.0000 11.0000 10.0000  6.0000
 24.0000 21.0000 15.0000  3.0000  7.0000  5.0000  5.0000 19.0000 16.0000
 24.0000 21.0000 15.0000 16.0000 14.0000  3.0000 10.0000  7.0000 13.0000
 24.0000 21.0000 15.0000 21.0000  9.0000  8.0000 15.0000  7.0000 13.0000
 24.0000 21.0000 15.0000 21.0000 16.0000  8.0000 13.0000  7.0000  8.0000
 25.0000 20.0000 10.0000 20.0000 16.0000  2.0000  8.0000  4.0000 10.0000