%I #38 Jan 22 2019 05:10:38
%S 1,3,5,7,11,13,15,17,19,21,23,27,29,31,33,35,37,39,41,43,47,51,53,55,
%T 57,59,61,65,67,69,71,73,77,79,83,85,87,89,91,93,95,97,101,103,105,
%U 107,109,111,113,115,119,123,125,127,129,131,133,135,137,139,141,143,145,149
%N List of positive integers whose prime tower factorization, as defined in comments, does not contain the prime 2.
%C The prime tower factorization of a number can be recursively defined as follows: the prime tower factorization of 1 is itself; to find the prime tower factorization of an integer n > 1, let n = p_1^e_1 * p_2^e_2 * ... * p_k^e_k be the canonical prime factorization of n, then the prime tower factorization is given by p_1^f_1 * p_2^f_2 * ... * p_k^f_k, where f_i is the prime tower factorization of e_i.
%C An alternative definition: let I(n) be the indicator function for the set of positive integers whose prime tower factorization does not contain a 2. Then I(n) is the multiplicative function satisfying I(p^k) = I(k) for p prime not equal to 2, and I(2^k) = 0.
%H Rémy Sigrist, <a href="/A182318/b182318.txt">Table of n, a(n) for n = 1..10000</a>
%H Patrick Devlin and Edinah Gnang, <a href="http://arxiv.org/abs/1204.5251">Primes Appearing in Prime Tower Factorization</a>, arXiv:1204.5251 [math.NT], 2012-2014.
%p # The integer n is in this sequence if and only if
%p # containsPrimeInTower(2, n) returns false
%p containsPrimeInTower:=proc(q, n) local i, L, currentExponent; option remember;
%p if n <= 1 then return false: end if;
%p if type(n/q, integer) then return true: end if;
%p L := ifactors(n)[2];
%p for i to nops(L) do currentExponent := L[i][2];
%p if containsPrimeInTower(q, currentExponent) then return true: end if
%p end do;
%p return false:
%p end proc:
%t Select[Range[150], ! MemberQ[Flatten@ FixedPoint[Map[If[PrimeQ@ Last@ # || Last@ # == 1, #, {First@ #, FactorInteger@ Last@ #}] &, #, {Depth@ # - 2}] &, FactorInteger@ #], 2] &] (* _Michael De Vlieger_, Feb 17 2017 *)
%t containsPrimeInTower[q_, n_] := containsPrimeInTower[q, n] = Module[{i, L, currentExponent}, If[n <= 1, Return[False]]; If[IntegerQ[n/q], Return[True] ]; L = FactorInteger[n]; For[i = 1, i <= Length[L], i++, currentExponent = L[[i, 2]]; If[containsPrimeInTower[q, currentExponent], Return[True]]]; Return[False]];
%t Select[Range[150], !containsPrimeInTower[2, #]&] (* _Jean-François Alcover_, Jan 22 2019, translated from Maple *)
%K nonn
%O 1,2
%A _Patrick Devlin_, Apr 24 2012
%E Typo in Maple program corrected by _Rémy Sigrist_, Dec 13 2016
|