23 lines
687 B
Text
23 lines
687 B
Text
ClearAll[Heron]
|
|
Heron[a_, b_, c_] := With[{s = (a + b + c)/2}, Sqrt[s (s - a) (s - b) (s - c)]]
|
|
PrintTemporary[Dynamic[{a, b, c}]];
|
|
results = Reap[
|
|
Do[
|
|
If[a < b + c \[And] b < c + a \[And] c < a + b,
|
|
If[GCD[a, b, c] == 1,
|
|
If[IntegerQ[Heron[a, b, c]],
|
|
Sow[<|"Sides" -> {a, b, c}, "Area" -> Heron[a, b, c],
|
|
"Perimeter" -> a + b + c, "MaximumSide" -> Max[a, b, c]|>]
|
|
]
|
|
]
|
|
]
|
|
,
|
|
{a, 1, 200},
|
|
{b, a, 200},
|
|
{c, b, 200}
|
|
]
|
|
][[2, 1]];
|
|
results = SortBy[results, {#["Area"] &, #["Perimeter"] &, #["MaximumSide"] &}];
|
|
results // Length
|
|
Take[results, 10] // Dataset
|
|
Select[results, #["Area"] == 210 &] // Dataset
|