47 lines
1.8 KiB
Text
47 lines
1.8 KiB
Text
ClearAll[GenerateSmoothNumbers]
|
|
GenerateSmoothNumbers[max_?Positive] := GenerateSmoothNumbers[max, 7]
|
|
GenerateSmoothNumbers[max_?Positive, maxprime_?Positive] :=
|
|
Module[{primes, len, vars, body, endspecs, its, data},
|
|
primes = Prime[Range[PrimePi[maxprime]]];
|
|
len = Length[primes];
|
|
If[max < Min[primes],
|
|
{}
|
|
,
|
|
vars = Table[Unique[], len];
|
|
body = Times @@ (primes^vars);
|
|
endspecs = Prepend[Most[primes^vars], 1];
|
|
endspecs = FoldList[Times, endspecs];
|
|
its = Transpose[{vars, ConstantArray[0, len], MapThread[N@Log[#1, max/#2] &, {primes, endspecs}]}];
|
|
With[{b = body, is = its},
|
|
data = Table[b, Evaluate[Sequence @@ is]];
|
|
];
|
|
data = Sort[Flatten[data]];
|
|
data
|
|
]
|
|
]
|
|
Take[GenerateSmoothNumbers[10^8, 2], 25]
|
|
Take[GenerateSmoothNumbers[200, 3], 25]
|
|
Take[GenerateSmoothNumbers[200, 5], 25]
|
|
Take[GenerateSmoothNumbers[200, 7], 25]
|
|
Take[GenerateSmoothNumbers[200, 11], 25]
|
|
Take[GenerateSmoothNumbers[200, 13], 25]
|
|
Take[GenerateSmoothNumbers[200, 17], 25]
|
|
Take[GenerateSmoothNumbers[200, 19], 25]
|
|
Take[GenerateSmoothNumbers[200, 23], 25]
|
|
Take[GenerateSmoothNumbers[200, 29], 25]
|
|
Take[GenerateSmoothNumbers[10^40, 3], {3000, 3002}]
|
|
Take[GenerateSmoothNumbers[10^15, 5], {3000, 3002}]
|
|
Take[GenerateSmoothNumbers[10^10, 7], {3000, 3002}]
|
|
Take[GenerateSmoothNumbers[10^7, 11], {3000, 3002}]
|
|
Take[GenerateSmoothNumbers[10^7, 13], {3000, 3002}]
|
|
Take[GenerateSmoothNumbers[10^6, 17], {3000, 3002}]
|
|
Take[GenerateSmoothNumbers[10^5, 19], {3000, 3002}]
|
|
Take[GenerateSmoothNumbers[10^5, 23], {3000, 3002}]
|
|
Take[GenerateSmoothNumbers[10^5, 29], {3000, 3002}]
|
|
|
|
s = Select[Range[10^5], FactorInteger /* Last /* First /* LessEqualThan[503]];
|
|
s[[30000 ;; 30019]]
|
|
s = Select[Range[10^5], FactorInteger /* Last /* First /* LessEqualThan[509]];
|
|
s[[30000 ;; 30019]]
|
|
s = Select[Range[10^5], FactorInteger /* Last /* First /* LessEqualThan[521]];
|
|
s[[30000 ;; 30019]]
|