34 lines
909 B
Plaintext
34 lines
909 B
Plaintext
ClearAll[FindPrimeTriangles, FindPrimeTrianglesHelper]
|
|
FindPrimeTriangles[max_] :=
|
|
Module[{count = 0, firstsolution, primes, primeQ},
|
|
primes = PrimeQ[Range[2 max]];
|
|
primeQ[n_] := primes[[n]];
|
|
ClearAll[FindPrimeTrianglesHelper];
|
|
FindPrimeTrianglesHelper[start_, remainder_, mxx_] :=
|
|
Module[{last, nexts, r, newstart, newremainder},
|
|
If[Length[remainder] > 0,
|
|
last = Last[start];
|
|
Do[
|
|
r = remainder[[ri]];
|
|
If[primeQ[last + r],
|
|
newstart = Append[start, r];
|
|
newremainder = Delete[remainder, ri];
|
|
FindPrimeTrianglesHelper[newstart, newremainder, mxx]
|
|
]
|
|
,
|
|
{ri, Length[remainder]}
|
|
]
|
|
,
|
|
If[primeQ[Last[start] + mxx],
|
|
count++;
|
|
If[count == 1,
|
|
Print[Append[start, mxx]]
|
|
]
|
|
]
|
|
]
|
|
];
|
|
FindPrimeTrianglesHelper[{1}, Range[2, max - 1], max];
|
|
count
|
|
]
|
|
Table[FindPrimeTriangles[S],{S, 2, 20}]
|