Выражу Вам глубочайшую благодарность, если Вы это сделаете.
Вот, например, в Mathematica:
Код:
(* state = {K, smallest prime factor of K, p1} *)
initialState = {2, 2, 2};
nextState[{k_, kp_, p1_}] := If[p1 == kp,
{k + 1, Divisors[k + 1][[2]], 2},
{k, kp, NextPrime[p1]}]
value[{k_, kp_, p1_}] := k p1^2
(* interface *)
KtinaNumbers[count_Integer?NonNegative] := Block[
{state = initialState},
Reap[
Do[
Sow[value[state]];
state = nextState[state],
{count}]
][[2, 1]]
]
Запускается так:
Код:
In> KtinaNumbers[50]
Out> {8, 12, 27, 16, 20, 45, 125, 24, 28, 63, 175, 343, 32, 36, 81, 40, 44, 99, 275, 539, 1331, 48, 52, 117, 325, 637, 1573, 2197, 56, 60, 135, 64, 68, 153, 425, 833, 2057, 2873, 4913, 72, 76, 171, 475, 931, 2299, 3211, 5491, 6859, 80, 84}