cp's OEIS Frontend

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.

A273691 Integer area of primitive cyclic quadrilaterals with integer sides and rational radius.

Original entry on oeis.org

12, 60, 108, 120, 120, 168, 192, 192, 234, 240, 300, 360, 360, 420, 420, 420, 420, 420, 420, 432, 540, 540, 588, 600, 660, 660, 714, 768, 840, 924, 960, 960, 966, 1008, 1008, 1008, 1080, 1080, 1080, 1092, 1134, 1200
Offset: 1

Views

Author

Albert Lau, May 28 2016

Keywords

Comments

Given 4 segments a,b,c,d, there is a unique circumcircle such that these segments can be placed inside to form cyclic quadrilaterals. There are 3 ways to place these segments: abcd,acbd,adbc.
Primitive means a,b,c,d share no common factor.
The area S = sqrt[(s-a)(s-b)(s-c)(s-d)] where s=(a+b+c+d)/2 is the semiperimeter.
The circumradius R=Sqrt[a b+c d]*Sqrt[a c+b d]*Sqrt[a d+b c]/(4S)
The length of the diagonal separating a-b and c-d is (4S R)/(a b+c d), the other diagonal can be obtain by swapping b,c or swapping b,d.
It follows that if the sides and area are integers, then (any diagonal is rational) <=> (circumradius is rational) <=> (all diagonals are rational).
From empirical observation, the area seems to be a multiple of 6. (If so, the program could be modified to run 6 times as fast.)

Examples

			a,  b,  c,  d,  S,   r
4,  4,  3,  3,  12,  5/2
12, 12, 5,  5,  60,  13/2
14, 13, 13, 4,  108, 65/8
15, 15, 8,  8,  120, 17/2
21, 10, 10, 9,  120, 85/8
24, 24, 7,  7,  168, 25/2
21, 13, 13, 11, 192, 65/6
25, 15, 15, 7,  192, 25/2
24, 20, 15, 7,  234, 25/2
		

Programs

  • Mathematica
    SMax=1200;
    Do[
      x=S^2/(u v w);
      If[u+v+w+x//OddQ,Continue[]];
      If[v+w+x<=u,Continue[]];
      {a,b,c,d}=(u+v+w+x)/2-{x,w,v,u};
      If[GCD[a,b,c,d]>1,Continue[]];
      R=(Sqrt[v w+u x]Sqrt[u w+v x]Sqrt[u v+w x])/(4S);
      If[R\[NotElement]Rationals,Continue[]];
      S(*{a,b,c,d,"",S,R,"",(4S R)/(a d+b c),(4S R)/(a c+b d),(4S R)/(a b+c d)}*)//Sow;
      ,{S,1(*6*),SMax,1(*6*)}(*assuming S mod 6 = 0, set to 6 to run faster*)
      ,{u,S^2//Divisors//Select[#,S<=#^2&&#<=S&]&}
      ,{v,S^2/u//Divisors//Select[#,S^2<=u#^3&&u/3<#<=u&]&}
      ,{w,S^2/(u v)//Divisors//Select[#,S^2<=u v#^2&&(u-v)/2<#<=v&]&}
    ]//Reap//Last//Last(*//TableForm*)
    {S,R,x,a,b,c,d}=.;