将7#代码稍加优化, 搜索形如$12k,12k+3$的数:
- f[{a_, b_, c_}] := a + b == c;
- f[S_] :=
- Block[{c = S[[Length[S]]], p, p1, T1, T2},
- p = FirstPosition[Delete[S, -1] - (c - 1)/2, n_ /; Positive[n]];
- If[c < 3 || MissingQ[p], Return[False]];
- p1 = p[[1]];
- T1 = S[[1 ;; p1 - 1]]; T2 = S[[p1 ;;]];
- AnyTrue[
- Map[Complement[S, {#, c - #, c}] &,
- Select[T1, MemberQ[T2, c - #] &]], f]];
Copy the Code 红色数字为未确定者:
3, 12, 15, 24, 27, 36, 39, 48, 51, 60, 63, 72, 75, 84, 87, 96, 99, 108, 111, ⋯ |