|
MATHEMATICA
|
PracticalQ[n_] := Module[{f, p, e, prod=1, ok=True}, If[n<1||(n>1&&OddQ[n]), False, If[n==1, True, f=FactorInteger[n]; {p, e}=Transpose[f]; Do[If[p[[i]]>1+DivisorSigma[1, prod], ok=False; Break[]]; prod=prod*p[[i]]^e[[i]], {i, Length[p]}]; ok]]];
DivFreeQ[n_] := Module[{plst=First/@Select[FactorInteger[n], #[[2]]>1 &], m, ok=False}, Do[If[! PracticalQ[n/plst[[m]]], ok=True, ok=False; Break[]], {m, 1, Length@plst}]; ok];
PPracticalQ[n_] := PracticalQ[n]&&(SquareFreeQ[n]||DivFreeQ[n]);
plst[n_] := Select[Range[Ceiling[n/2], n-1], PPracticalQ]; lst={}; Do[If[plst[n]!={}&&AllTrue[n-plst[n], PPracticalQ], AppendTo[lst, n]], {n, 1, 10000}]; lst
|