-
import Data.Set (singleton, fromList, deleteFindMin, union)
a025487 n = a025487_list !! (n-1)
a025487_list = 1 : h [b] (singleton b) bs where
(_ : b : bs) = a002110_list
h cs s xs'@(x:xs)
| m <= x = m : h (m:cs) (s' `union` fromList (map (* m) cs)) xs'
| otherwise = x : h (x:cs) (s `union` fromList (map (* x) (x:cs))) xs
where (m, s') = deleteFindMin s
-- Reinhard Zumkeller, Apr 06 2013
-
isA025487 := proc(n)
local pset,omega ;
pset := sort(convert(numtheory[factorset](n),list)) ;
omega := nops(pset) ;
if op(-1,pset) <> ithprime(omega) then
return false;
end if;
for i from 1 to omega-1 do
if padic[ordp](n,ithprime(i)) < padic[ordp](n,ithprime(i+1)) then
return false;
end if;
end do:
true ;
end proc:
A025487 := proc(n)
option remember ;
local a;
if n = 1 then
1 ;
else
for a from procname(n-1)+1 do
if isA025487(a) then
return a;
end if;
end do:
end if;
end proc:
seq(A025487(n),n=1..100) ; # R. J. Mathar, May 25 2017
-
PrimeExponents[n_] := Last /@ FactorInteger[n]; lpe = {}; ln = {1}; Do[pe = Sort@PrimeExponents@n; If[ FreeQ[lpe, pe], AppendTo[lpe, pe]; AppendTo[ln, n]], {n, 2, 2350}]; ln (* Robert G. Wilson v, Aug 14 2004 *)
(* Second program: generate all terms m <= A002110(n): *)
f[n_] := {{1}}~Join~
Block[{lim = Product[Prime@ i, {i, n}],
ww = NestList[Append[#, 1] &, {1}, n - 1], dec},
dec[x_] := Apply[Times, MapIndexed[Prime[First@ #2]^#1 &, x]];
Map[Block[{w = #, k = 1},
Sort@ Prepend[If[Length@ # == 0, #, #[[1]]],
Product[Prime@ i, {i, Length@ w}] ] &@ Reap[
Do[
If[# < lim,
Sow[#]; k = 1,
If[k >= Length@ w, Break[], k++]] &@ dec@ Set[w,
If[k == 1,
MapAt[# + 1 &, w, k],
PadLeft[#, Length@ w, First@ #] &@
Drop[MapAt[# + Boole[i > 1] &, w, k], k - 1] ]],
{i, Infinity}] ][[-1]]
] &, ww]]; Sort[Join @@ f@ 13] (* Michael De Vlieger, May 19 2018 *)
-
isA025487(n)=my(k=valuation(n,2),t);n>>=k;forprime(p=3,default(primelimit),t=valuation(n,p);if(t>k,return(0),k=t);if(k,n/=p^k,return(n==1))) \\ Charles R Greathouse IV, Jun 10 2011
-
factfollow(n)={local(fm, np, n2);
fm=factor(n); np=matsize(fm)[1];
if(np==0,return([2]));
n2=n*nextprime(fm[np,1]+1);
if(np==1||fm[np,2]Franklin T. Adams-Watters, Dec 01 2011 */
-
is(n) = {if(n==1, return(1)); my(f = factor(n)); f[#f~, 1] == prime(#f~) && vecsort(f[, 2],,4) == f[, 2]} \\ David A. Corneth, Feb 14 2019
-
upto(Nmax)=vecsort(concat(vector(logint(Nmax,2),n,select(t->t<=Nmax,if(n>1,[factorback(primes(#p),Vecrev(p)) || p<-partitions(n)],[1,2]))))) \\ M. F. Hasler, Jul 17 2019
-
\\ For fast generation of large number of terms, use this program:
A283980(n) = {my(f=factor(n)); prod(i=1, #f~, my(p=f[i, 1], e=f[i, 2]); if(p==2, 6, nextprime(p+1))^e)}; \\ From A283980
A025487list(e) = { my(lista = List([1, 2]), i=2, u = 2^e, t); while(lista[i] != u, if(2*lista[i] <= u, listput(lista,2*lista[i]); t = A283980(lista[i]); if(t <= u, listput(lista,t))); i++); vecsort(Vec(lista)); }; \\ Returns a list of terms up to the term 2^e.
v025487 = A025487list(101);
A025487(n) = v025487[n];
for(n=1,#v025487,print1(A025487(n), ", ")); \\ Antti Karttunen, Dec 24 2019
-
def sharp_primorial(n): return sloane.A002110(prime_pi(n))
N = 2310
nmax = 2^floor(log(N,2))
sorted([j for j in (prod(sharp_primorial(t[0])^t[1] for k, t in enumerate(factor(n))) for n in (1..nmax)) if j <= N])
# Giuseppe Coppoletta, Jan 26 2015
Comments