A267124 Primitive practical numbers: practical numbers that are squarefree or practical numbers that when divided by any of its prime factors whose factorization exponent is greater than 1 is no longer practical.
1, 2, 6, 20, 28, 30, 42, 66, 78, 88, 104, 140, 204, 210, 220, 228, 260, 272, 276, 304, 306, 308, 330, 340, 342, 348, 364, 368, 380, 390, 414, 460, 462, 464, 476, 496, 510, 522, 532, 546, 558, 570, 580, 620, 644, 666, 690, 714, 740, 744, 798, 812, 820, 858, 860, 868, 870, 888, 930, 966, 984
Offset: 1
Keywords
Examples
a(4)=20=2^2*5. It is a practical number because it has 6 divisors 1, 2, 4, 5, 10, 20 that form a complete sequence. If it is divided by 2 the resultant has 4 divisors 1, 2, 5, 10 that is not a complete sequence. a(7)=42=2*3*7. It is squarefree and is practical because it has 8 divisors 1, 2, 3, 6, 7, 14, 21, 42 that form a complete sequence.
Links
- Amiram Eldar, Table of n, a(n) for n = 1..10000 (terms 1..5000 from Michel Marcus)
- Wikipedia, "Complete" sequence. [Wikipedia calls a sequence "complete" (sic) if every positive integer is a sum of distinct terms. This name is extremely misleading and should be avoided. - _N. J. A. Sloane_, May 20 2023]
- Wikipedia, Practical number, and Squarefree integer
Crossrefs
Programs
-
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]]]; lst=Select[Range[1, 1000], PracticalQ]; lst1=lst; maxfac=PrimePi[Last[Union[Flatten[FactorInteger[lst], 1]]][[1]]]; Do[lst1=Select[lst1, Mod[#, Prime[p]^2]!=0||!PracticalQ[#/Prime[p]] &], {p, 1, maxfac}]; lst1
-
PARI
\\ see A005153 for is_A005153 isp(n) = {my(f=factor(n)); for (k=1, #f~, if ((f[k,2] > 1) && is_A005153(n/f[k,1]), return (0));); return (1);} is_A267124(n) = is_A005153(n) && (issquarefree(n) || isp(n)); \\ Michel Marcus, Jun 19 2019. [Name edited for use in A361872 and elsewhere. - M. F. Hasler, Jun 20 2023]
-
Python
from sympy import factorint def is_primitive(n): # uses is_A005153: see there, please DO NOT copy code here! for i in range(0, len(list(factorint(n)))): if list(factorint(n).values())[i] > 1: if is_A005153(n//list(factorint(n))[i]): return False return True def is_A267124(n): if is_A005153(n) and is_primitive(n): return True # Karl-Heinz Hofmann, Mar 09 2023
Comments