1
     Table[g = 
     Map[Sort, 
     Solve[a + b + c == L && a^2 + b^2 == c^2 && a > 0 && b > 0 && 
     c > 0, Integers] // Values] // DeleteDuplicates, {L, 12, 
     3000}]
     Count[g]

this is the question, its suppose to be written in mathematica but this one doesnt work..

L is the length for the wire and I want to know the number of values of L that is less than 3000 that exactly one integer sided right angle triangle can be formed.

Aran
  • 373
  • 1
  • 9

2 Answers2

2
Clear["Global`*"]

Avoid redundant solutions by requiring that a, b, and c be ordered

eqns = a + b + c == L && a^2 + b^2 == c^2 && 0 < a <= b < c && 0 < L < 3000;

solAll = Solve[eqns, {a, b, c, L}, Integers];

Verifying the solutions

And @@ (eqns /. solAll)

(* True *)

Eliminating values of L with more than one solution

solSingles = Cases[GatherBy[solAll, Last], x_?(Length[#] == 1 &) :> x[[1]]];

The number of solutions before and after filtering

Length /@ {solAll, solSingles}

(* {1201, 332} *)

Looking at solutions for the 20 largest values of L

SortBy[solSingles, Last][[-20 ;;]]

(* {{a -> 708, b -> 944, c -> 1180, L -> 2832}, {a -> 660, b -> 989, c -> 1189, L -> 2838}, {a -> 568, b -> 1065, c -> 1207, L -> 2840}, {a -> 441, b -> 1160, c -> 1241, L -> 2842}, {a -> 711, b -> 948, c -> 1185, L -> 2844}, {a -> 736, b -> 930, c -> 1186, L -> 2852}, {a -> 53, b -> 1404, c -> 1405, L -> 2862}, {a -> 717, b -> 956, c -> 1195, L -> 2868}, {a -> 148, b -> 1365, c -> 1373, L -> 2886}, {a -> 723, b -> 964, c -> 1205, L -> 2892}, {a -> 400, b -> 1218, c -> 1282, L -> 2900}, {a -> 485, b -> 1164, c -> 1261, L -> 2910}, {a -> 705, b -> 992, c -> 1217, L -> 2914}, {a -> 729, b -> 972, c -> 1215, L -> 2916}, {a -> 584, b -> 1095, c -> 1241, L -> 2920}, {a -> 612, b -> 1075, c -> 1237, L -> 2924}, {a -> 732, b -> 976, c -> 1220, L -> 2928}, {a -> 828, b -> 896, c -> 1220, L -> 2944}, {a -> 747, b -> 996, c -> 1245, L -> 2988}, {a -> 345, b -> 1300, c -> 1345, L -> 2990}} *)

Bob Hanlon
  • 157,611
  • 7
  • 77
  • 198
1

I think you mean to do this?

g = Table[
  Map[Sort, 
    Solve[a + b + c == L && a^2 + b^2 == c^2 && a > 0 && b > 0 && 
       c > 0, Integers] // Values] // DeleteDuplicates, {L, 12, 1500}];

DeleteCases[g, {}] // Length

James Khan
  • 51
  • 4
  • thanks! how do I count how many elements there are? i think the output should be around 16100 – Aran Oct 18 '20 at 19:53
  • The DeleteCases[g, {}] // Length should it. I know 1500 will take sometime, so try like 100, it returns 14, which I think is correct? – James Khan Oct 19 '20 at 08:03