# Product of exponents of prime factorization

Let $p(n)$ be the product of the exponents of the prime factorization of $n$. For example, $$p(5184) = p(2^6 3^4) = 24 \;,$$ $$p(65536) = p(2^{16}) = 16 \;.$$ Define $P(n)$ as the number of iterations of $p(\;)$ to reduce $n$ to $1$. For example, $P(5184) = 3$ because $$p(5184)=24, \;p(24) = p(2^3 3^1) = 3, \;p(3)=1 \;;$$ and $P(65536)=4$ because $$p(65536) = 16, \;p(16)=p(2^4)=4, \;p(4)=p(2^2)=2, \; p(2)=1 \;.$$ Finally, define $m(k)$ to be the minimum value of $n$ such that $P(n) = k$.

Q1. What is $m(k)$?

(I ask this question out of curiosity, not because it is part of a research program. It was previously posed on MSE.)

It is easy to see that $m(1)=2$, $m(2)=4$, and $m(3)=16$, the latter because $16=2^{2^2}$. But, thanks to Calvin Lin's insight, $m(4)$ is not a power of $2$, but instead is $m(4)=1296= 2^4 3^4$. I do not know the value of $m(5)$.

Q2. More specifically: What is $m(5)$?

I do know that $m(5) > 2 \times 10^8$.

Update. Will Jagy showed that almost certainly $m(5) = 2^9 3^6 5^4 7^3 11^2 =9681819840000 \approx 10^{13}$. As it seems that an explicit expression for $m(k)$ is not in the offing, I will accept his resolution of Q2 and leave Q1 open.

-
Let r(n)=n/rad(n), which bumps the exponents of n down 1. Your p(n) satisfies p(n)=d(r(n)), the number of divisors of r(n). You might look to literature on iterates of d(n) to get a further sense of p. I would start a search using Guy's book on unsolved problems in number theory. –  The Masked Avenger Oct 2 '13 at 17:41
There is one occurence of 2, 4, 16, 1296 at the Online Encyclopedia of Integer Sequences, but it's not related (oeis.org/A070283). –  Gerry Myerson Oct 3 '13 at 0:16
Interesting! The next number in the sequence is about the size of Will's number, but $P(1586874322944)=4$. –  Joseph O'Rourke Oct 3 '13 at 0:21
So now we have a new sequence, $2, 4, 16, 1296, 9681819840000, \ldots$, but with little hope of extending it. –  Joseph O'Rourke Oct 3 '13 at 12:29

Well, make it an answer. The simple observation, also true for highly composite numbers (which resemble this problem) is that getting a large value of $p(n)$ means $n$ has non-increasing exponents in its prime factorization. Furthermore, no exponent is exactly $1.$

So, I am not entirely convinced that $p(m(5)) = 1296.$ Maybe, maybe not. However, i am convinced that if you go up to eight primes, $$n = 2^a 3^b 5^c 7^d 11^e 13^f 17^g 19^h$$ with $a \geq b \geq c \geq d \geq e \geq f \geq g \geq h \geq 0$ and none exactly 1, and loops with built-in bounds reflecting $n > 2 \cdot 10^8,$ you will find the winner. NOTE: it turns out that this was true: since $$(2 \cdot 3 \cdot 5 \cdot 7 \cdot 11 \cdot 13 \cdot 17 \cdot 19)^2 \approx 9.4 \cdot 10^{13}$$ and we found out we could do slightly better than $10^{13},$ and any prime we use has an exponent at least $2,$ it follows that we do not need to use any prime bigger than $17.$

Oh, if $h=0,$ for example, you do not multiply that in. The HC and superabundant numbers behave better in this regard. Put another way, your $p$ is almost multiplicative, but not unless you take care to build in $p(1) = 1.$

NOTE: I see no hope of finding $m(6)$ unless we can prove that $p(m(6)) = m(5),$ and it is still a stretch in that case.

BEST
$$2^9 3^6 5^4 7^3 11^2 \approx e^{29.9013} \approx 9.7 \cdot 10^{12}$$

MUCH more careful computer run. No specific bounds on the exponents, just the requirement that the resulting product $n < e^{37},$ done using the logarithms. My original guess that $6$ was a reasonable upper bound on the exponents was just that, a guess, and not a good one. Mostly, you don't get enough benefit from extra large (or extra small) exponents on 2, and you don't get enough benefit out of $p(n)$ moving from 1296 to 2304 or 3600

  log n          p(n)           2  3  5  7 11 13 17 19
-------------------------------------------------------------
29.9013        1296            9  6  4  3  2  0  0  0
29.9966        1296            8  6  3  3  3  0  0  0
30.1019        1296            9  4  4  3  3  0  0  0
30.2197        1296            6  6  4  3  3  0  0  0
30.2703        1296            9  6  6  4  0  0  0  0
30.3472        1296            9  9  4  4  0  0  0  0
30.3713        1296           12  6  3  3  2  0  0  0
30.4038        1296           12  6  6  3  0  0  0  0
30.4808        1296           12  9  4  3  0  0  0  0
30.4891        1296            9  8  3  3  2  0  0  0
30.5216        1296            9  8  6  3  0  0  0  0
30.5719        1296           12  4  3  3  3  0  0  0
31.0407        1296            6  6  6  3  2  0  0  0
31.1742        1296            9  6  6  2  2  0  0  0
31.2245        1296            9  4  3  3  2  2  0  0
31.2512        1296            9  9  4  2  2  0  0  0
31.3423        1296            6  6  3  3  2  2  0  0
31.3438        1296           18  6  4  3  0  0  0  0
31.4758        1296            9  6  3  2  2  2  0  0
31.543        1296            6  4  3  3  3  2  0  0
31.6439        1296           16  9  3  3  0  0  0  0
31.7212        1296           12  9  3  2  2  0  0  0
31.7537        1296           12  9  6  2  0  0  0  0
31.8306        1296            8  3  3  3  3  2  0  0
31.9316        1296           18  8  3  3  0  0  0  0
32.0826        1296            6  6  6  6  0  0  0  0
32.1672        1296           12 12  3  3  0  0  0  0
32.2053        1296           12  3  3  3  2  2  0  0
32.2459        1296           16  3  3  3  3  0  0  0
32.3329        1296           18  4  3  3  2  0  0  0
32.4662        1296            9  6  4  3  2  1  0  0
32.5615        1296            8  6  3  3  3  1  0  0
32.5842        1296           18  6  3  2  2  0  0  0
32.6168        1296           18  6  6  2  0  0  0  0
32.6669        1296            9  4  4  3  3  1  0  0
32.6682        1296            9  6  6  4  1  0  0  0
32.6937        1296           18  9  4  2  0  0  0  0
32.7216        1296            4  4  3  3  3  3  0  0
32.7451        1296            9  9  4  4  1  0  0  0
32.7847        1296            6  6  4  3  3  1  0  0
32.8017        1296           12  6  6  3  1  0  0  0
32.8787        1296           12  9  4  3  1  0  0  0
32.8932        1296            9  9  8  2  0  0  0  0
32.9195        1296            9  8  6  3  1  0  0  0
32.9362        1296           12  6  3  3  2  1  0  0
33.054        1296            9  8  3  3  2  1  0  0
33.1369        1296           12  4  3  3  3  1  0  0
33.1622        1296            9  9  2  2  2  2  0  0
33.5519        2304            8  6  4  4  3  0  0  0
33.6057        1296            6  6  6  3  2  1  0  0
33.7129        1296            6  3  3  3  2  2  2  0
33.7392        1296            9  6  6  2  2  1  0  0
33.7417        1296           18  6  4  3  1  0  0  0
33.8032        2304            8  8  4  3  3  0  0  0
33.8161        1296            9  9  4  2  2  1  0  0
33.8464        1296            9  3  3  2  2  2  2  0
33.8933        1296           24  6  3  3  0  0  0  0
33.9266        2304           12  6  4  4  2  0  0  0
34.0418        1296           16  9  3  3  1  0  0  0
34.0444        2304            9  8  4  4  2  0  0  0
34.0577        1296            9  4  3  3  2  2  1  0
34.1273        2304           12  4  4  4  3  0  0  0
34.1516        1296           12  9  6  2  1  0  0  0
34.1755        1296            6  6  3  3  2  2  1  0
34.1779        2304           12  8  4  3  2  0  0  0
34.2706        1296           18  9  2  2  2  0  0  0
34.2862        1296           12  9  3  2  2  1  0  0
34.309        1296            9  6  3  2  2  2  1  0
34.3295        1296           18  8  3  3  1  0  0  0
34.338        2304            8  6  4  3  2  2  0  0
34.3729        2304            8  6  6  4  2  0  0  0
34.3762        1296            6  4  3  3  3  2  1  0
34.3801        1296           18 12  3  2  0  0  0  0
34.4183        1296           18  3  3  2  2  2  0  0
34.4457        2304            9  4  4  4  4  0  0  0
34.4805        1296            6  6  6  6  1  0  0  0
34.5387        2304            8  4  4  3  3  2  0  0
34.5469        2304           12  8  6  4  0  0  0  0
34.5635        2304            6  6  4  4  4  0  0  0
34.5651        1296           12 12  3  3  1  0  0  0
34.6242        2304            8  8  6  3  2  0  0  0
34.6639        1296            8  3  3  3  3  2  1  0
34.7245        1296            4  3  3  3  3  2  2  0
34.7533        2304           16  6  4  3  2  0  0  0
34.7799        2304            9  4  4  4  2  2  0  0
34.8109        1296           16  3  3  3  3  1  0  0
34.8976        2304            6  6  4  4  2  2  0  0
34.8979        1296           18  4  3  3  2  1  0  0
34.9134        2304           12  4  4  3  2  2  0  0
34.9258        2304            8  8  3  3  2  2  0  0
34.954        2304           16  4  4  3  3  0  0  0
35.0147        1296           18  6  6  2  1  0  0  0
35.0385        1296           12  3  3  3  2  2  1  0
35.0916        1296           18  9  4  2  1  0  0  0
35.0983        2304            6  4  4  4  3  2  0  0
35.1223        2304           16  6  6  4  0  0  0  0
35.1492        1296           18  6  3  2  2  1  0  0
35.1647        2304           12  6  4  2  2  2  0  0
35.1993        2304           16  9  4  4  0  0  0  0
35.2331        1296            9  6  6  4  1  1  0  0
35.2397        1296           18  9  8  0  0  0  0  0
35.2432        1296           24  9  3  2  0  0  0  0
35.2825        2304            9  8  4  2  2  2  0  0
35.2911        1296            9  9  8  2  1  0  0  0
35.2994        1296            9  6  4  3  2  1  1  0
35.3101        1296            9  9  4  4  1  1  0  0
35.3166        1296           18 12  6  0  0  0  0  0
35.3411        2304           16  8  3  3  2  0  0  0
35.3666        1296           12  6  6  3  1  1  0  0
35.3736        2304           16  8  6  3  0  0  0  0
35.3849        1296           27  4  4  3  0  0  0  0
35.3932        1296           24  3  3  3  2  0  0  0
35.3947        1296            8  6  3  3  3  1  1  0
35.4436        1296           12  9  4  3  1  1  0  0
35.4509        2304           12  8  6  2  2  0  0  0
35.4628        1296           16  9  9  0  0  0  0  0
35.4844        1296            9  8  6  3  1  1  0  0
35.4869        2304           18  8  4  4  0  0  0  0
35.5001        1296            9  4  4  3  3  1  1  0
35.5548        1296            4  4  3  3  3  3  1  0
35.611        2304            8  6  6  2  2  2  0  0
35.6179        1296            6  6  4  3  3  1  1  0
35.6362        1296           27  6  4  2  0  0  0  0
35.6662        2304            8  8  6  6  0  0  0  0
35.6864        2304            9  8  8  4  0  0  0  0
35.7225        2304           12 12  4  4  0  0  0  0
35.7525        2304           12  8  3  2  2  2  0  0
35.7694        1296           12  6  3  3  2  1  1  0
35.8199        2304           12  8  8  3  0  0  0  0
35.8872        1296            9  8  3  3  2  1  1  0
35.8883        2304           18  4  4  4  2  0  0  0
35.9701        1296           12  4  3  3  3  1  1  0
35.9861        1296           12 12  9  0  0  0  0  0
35.9954        1296            9  9  2  2  2  2  1  0
36.0263        2304           16  6  6  2  2  0  0  0
36.0765        2304           16  4  3  3  2  2  0  0
36.1032        2304           16  9  4  2  2  0  0  0
36.1169        2304            8  6  4  4  3  1  0  0
36.1797        1296           24  9  6  0  0  0  0  0
36.1978        2304            8  4  3  3  2  2  2  0
36.224        1296           27  8  3  2  0  0  0  0
36.277        2304            4  4  4  4  3  3  0  0
36.2911        1296           24  6  3  3  1  0  0  0
36.3066        1296           18  6  4  3  1  1  0  0
36.3279        2304           16  6  3  2  2  2  0  0
36.3682        2304            8  8  4  3  3  1  0  0
36.3909        2304           18  8  4  2  2  0  0  0
36.4209        2304            6  4  4  3  2  2  2  0
36.4389        1296            6  6  6  3  2  1  1  0
36.4491        2304            8  6  3  2  2  2  2  0
36.4916        2304           12  6  4  4  2  1  0  0
36.5477        3600           10  6  5  4  3  0  0  0
36.5492        2304           16 12  4  3  0  0  0  0
36.5545        2304            9  4  4  2  2  2  2  0
36.5724        1296            9  6  6  2  2  1  1  0
36.5903        2304            9  8  8  2  2  0  0  0
36.6068        1296           16  9  3  3  1  1  0  0
36.6094        2304            9  8  4  4  2  1  0  0
36.6253        1296           27  4  3  2  2  0  0  0
36.6265        2304           12 12  4  2  2  0  0  0
36.6494        1296            9  9  4  2  2  1  1  0
36.6573        1296            6  3  3  3  2  2  2  1
36.6722        2304            6  6  4  2  2  2  2  0
36.6922        2304           12  4  4  4  3  1  0  0
36.7166        1296           12  9  6  2  1  1  0  0
36.7429        2304           12  8  4  3  2  1  0  0
36.778        1296           18 12  3  2  1  0  0  0
36.7909        1296            9  3  3  2  2  2  2  1
36.799        3600           10  8  5  3  3  0  0  0
36.8353        3600           12  5  5  4  3  0  0  0
36.8356        1296           18  9  2  2  2  1  0  0
36.8944        1296           18  8  3  3  1  1  0  0
36.9379        2304            8  6  6  4  2  1  0  0
36.9448        2304           12  8  6  4  1  0  0  0


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

C++

int OROURKE(int i)
{
int joe = 1;

int p = 2;
int temp = i;
if (temp < 0 )
{
temp *= -1;

}

if ( temp > 1)
{
int primefac = 0;
while( temp > 1 && p * p <= temp)
{
if (temp % p == 0)
{
++primefac;

temp /= p;
int exponent = 1;
while (temp % p == 0)
{
temp /= p;
++exponent;
} // while p is fac
if ( exponent > 1)
{

joe *= exponent ;
}
}  // if p is factor
++p;
} // while p

} // temp > 1
return joe;
} // OROURKE

int main()
{

cout << endl;
double luge = 0.0;
double luge_a = 0.0, luge_b = 0.0, luge_c = 0.0, luge_d = 0.0, luge_e = 0.0, luge_f = 0.0, luge_g = 0.0, luge_h = 0.0;

for( int a = 2; a <= 100 &&  a * log(2.0) < 37.0; ++a){

luge_a =  a * log(2.0);
luge = luge_a;

for (int b = 0; b <= a && luge_a + b * log(3.0) < 37.0; ++b){
luge_b = luge_a + b * log(3.0) ;
luge = luge_b;

for( int c = 0; c <= b && luge_b + c * log(5.0) < 37.0; ++c){
luge_c = luge_b + c * log(5.0) ;
luge = luge_c;

for(int d = 0; d <= c && luge_c + d * log(7.0) < 37.0; ++d) {
luge_d = luge_c + d * log(7.0) ;
luge = luge_d;

for(int e = 0; e <= d && luge_d + e * log(11.0)  < 37.0; ++e){
luge_e = luge_d + e * log(11.0) ;
luge = luge_e;

for(int f = 0; f <= e && luge_e + f * log(13.0) < 37.0; ++f){
luge_f = luge_e + f * log(13.0) ;
luge = luge_f;

for(int g = 0; g <= f && luge_f + g * log(17.0) < 37.0; ++g) {
luge_g = luge_f + g * log(17.0) ;
luge = luge_g;

for(int h = 0; h <= g && luge_g + h * log(19.0) < 37.0; ++h){
luge_h = luge_g + h * log(19.0) ;
luge = luge_h;

int oro = 1;
if ( a > 1) oro *= a;
if ( b > 1) oro *= b;
if ( c > 1) oro *= c;
if ( d > 1) oro *= d;
if ( e > 1) oro *= e;
if ( f > 1) oro *= f;
if ( g > 1) oro *= g;
if ( h > 1) oro *= h;
if (  OROURKE(OROURKE(OROURKE(oro))) != 1 &&   OROURKE(OROURKE(OROURKE(OROURKE(oro)))) == 1  && luge < 37.0  )       cout << setw(12) << luge << setw(12) << oro << setw(13) << a  << setw(3) << b << setw(3) << c << setw(3) << d << setw(3) << e << setw(3) << f << setw(3) << g << setw(3) << h << endl;

}}}}}}}}  // abcdefgh

return 0 ;
}

-
Very nice analysis, Will, connecting to a falling sequence of exponents! –  Joseph O'Rourke Oct 2 '13 at 1:25
@JosephO'Rourke, thank you, kind sir. Now that we know we can do slightly better than $10^{13},$ and each exponent we use is at least 2, and $2.3.5.7.11.13.17.19 > \sqrt{10^{13}},$ we know that the primes up to 19 are enough. In case of nervousness, let the exponents go pretty high, but I suspect that can be ruled out by hand. –  Will Jagy Oct 2 '13 at 1:32
@JosephO'Rourke, redid everything so there were no actual bounds on the exponents, just the final number should be below $e^{37}.$ So there is a little variety, but the very best values stayed the same. –  Will Jagy Oct 2 '13 at 2:27
@Will, could you include a short summary? –  Włodzimierz Holsztyński Oct 2 '13 at 19:49
@WlodzimierzHolsztynski, pasted in the definition of the function called and the main program with octuple loop. Once using double for the logarithm of the full product, it was possible to use ordinary integers for everything else. I pasted the output onto a text file, then sorted with Unix sort -n filename_1.txt > filename_2.txt –  Will Jagy Oct 2 '13 at 20:30

Got a correct program going to find $m(6).$ Today is Monday, 7 October, 2013. I call it joseph.cc I started it going at 12:53 PDT, lunchtime, and put timestamps into the file that keeps the successes (of smaller size as we continue) called joseph.txt. I switched to log 10 for the output. Anyway, readable or not, here is output for the first four and a half hours, followed by the program in its entirety:

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

     116.814
651907611648300222725782474725592418809035465656889971919224893561886421964804482955701436492603438100109520590000000
= 2^7 3^7 5^7 7^5 11^5 13^5 17^5 19^4 23^4 29^3 31^3 37^3 41^3 43^3 47^3 53^3 59^3 61^3 67^2 71^2 73^2 79^2 83^2 89^2 97^2 101^2
17283248640000
1296
Mon Oct  7 12:58:36 PDT 2013

116.094
124169835254646341805332354513462020365253985861321166105191056581780738935164700557095176071476176867808332370000000
= 2^7 3^7 5^7 7^5 11^5 13^5 17^5 19^4 23^4 29^4 31^3 37^3 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^2 73^2 79^2 83^2 89^2 97^2
17283248640000
1296
Mon Oct  7 12:58:37 PDT 2013

115.463
29046424422943628261615103866949719080021683800698043001118664633489149367233234767368103149465306120315244930000000
= 2^7 3^7 5^7 7^5 11^5 13^5 17^5 19^4 23^4 29^4 31^4 37^3 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^2 79^2 83^2 89^2
17283248640000
1296
Mon Oct  7 12:58:37 PDT 2013

114.996
9904607040319497529935916619698420809889984591047268545135906220812295472907078286410964096289078630346102330000000
= 2^7 3^7 5^7 7^5 11^5 13^5 17^5 19^4 23^4 29^4 31^4 37^4 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^3 79^2 83^2
17283248640000
1296
Mon Oct  7 12:58:37 PDT 2013

114.668
4656847467498164102113867605051993758634585584323138745492117905241838443423722829102208260688100694395561830000000
= 2^7 3^7 5^7 7^5 11^5 13^5 17^5 19^4 23^4 29^4 31^4 37^4 41^4 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^3 79^3
17283248640000
1296
Mon Oct  7 12:58:37 PDT 2013

114.533
3413990801383729063446996805975279442431534859039247321555545609617270301842462008385267520786794596391048230000000
= 2^7 3^7 5^7 7^7 11^5 13^5 17^5 19^5 23^4 29^4 31^4 37^3 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^2 79^2 83^2
15122842560000
1296
Mon Oct  7 12:59:31 PDT 2013

114.127
1338538126656619567480089762365979064306514102811004066703662170355094656013425734453274433683427522841083070000000
= 2^7 3^7 5^7 7^7 11^5 13^5 17^5 19^5 23^4 29^4 31^4 37^4 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^3 79^2
15122842560000
1296
Mon Oct  7 12:59:31 PDT 2013

114.077
1193767539331957140297096557815901213255897692075957159953947066206770846878821925647640682243543917983250820000000
= 2^8 3^7 5^7 7^7 11^7 13^5 17^5 19^5 23^5 29^4 31^4 37^4 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^3
15122842560000
1296
Mon Oct  7 13:04:22 PDT 2013

113.751
563595000697524028412669373627780658655374359078317501769963019096881960426705572401378708919337904354140240000000
= 2^10 3^7 5^7 7^7 11^5 13^5 17^5 19^4 23^4 29^4 31^4 37^4 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^3 79^2
17283248640000
1296
Mon Oct  7 13:43:05 PDT 2013

113.681
479713034655167619889199144750191682431953221592392423757550900001381572388373236190584839617015121107059760000000
= 2^10 3^7 5^7 7^7 11^7 13^5 17^5 19^5 23^4 29^4 31^4 37^3 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^2 79^2
15122842560000
1296
Mon Oct  7 13:43:38 PDT 2013

113.317
207611745970775154834277662228852384914069163839296897383295141949003625544142943590894031694529377040565360000000
= 2^10 3^7 5^7 7^7 11^7 13^5 17^5 19^5 23^4 29^4 31^4 37^4 41^3 43^3 47^3 53^3 59^3 61^3 67^3 71^3 73^3
15122842560000
1296
Mon Oct  7 13:43:38 PDT 2013

113.183
152423056883707418625917905897515055243775047382212678813659537530460441258763728955857663845404589668440480000000
= 2^11 3^11 5^7 7^7 11^7 13^5 17^5 19^5 23^4 29^4 31^4 37^4 41^4 43^4 47^3 53^3 59^3 61^3 67^3 71^3
15490911744000
1296
Mon Oct  7 15:20:11 PDT 2013

113.078
119566635396053760260655511704533254626509877044047829323668660744724525901853491905891882920404646652772640000000
= 2^11 3^11 5^7 7^7 11^7 13^5 17^5 19^5 23^5 29^3 31^3 37^3 41^3 43^3 47^3 53^2 59^2 61^2 67^2 71^2 73^2 79^2 83^2 89^2
9681819840000
1296
Mon Oct  7 15:20:11 PDT 2013

112.366
23200848201456208751499497726280471198200439466822562008645212923196767619132535924675650050329749009634080000000
= 2^11 3^11 5^7 7^7 11^7 13^5 17^5 19^5 23^5 29^4 31^3 37^3 41^3 43^3 47^3 53^3 59^2 61^2 67^2 71^2 73^2 79^2 83^2
9681819840000
1296
Mon Oct  7 15:20:12 PDT 2013

111.79
6159725847069735201987600717283637947671447784122291466658745019092304830221136334189543321534781672030880000000
= 2^11 3^11 5^7 7^7 11^7 13^5 17^5 19^5 23^5 29^4 31^4 37^3 41^3 43^3 47^3 53^3 59^3 61^2 67^2 71^2 73^2 79^2
9681819840000
1296
Mon Oct  7 15:20:12 PDT 2013

111.348
2227607953346641940536134404568045320925245577433746489384519709676547348471255360721967517497837243033760000000
= 2^11 3^11 5^7 7^7 11^7 13^5 17^5 19^5 23^5 29^4 31^4 37^4 41^3 43^3 47^3 53^3 59^3 61^3 67^2 71^2 73^2
9681819840000
1296
Mon Oct  7 15:20:12 PDT 2013

111.06
1148290307345322839304327492840761962203349521713361157128781317785977775614662877820087215343696548435680000000
= 2^11 3^11 5^7 7^7 11^7 13^5 17^5 19^5 23^5 29^4 31^4 37^4 41^4 43^3 47^3 53^3 59^3 61^3 67^3 71^2
9681819840000
1296
Mon Oct  7 15:20:12 PDT 2013


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

    #include <iostream>
#include <stdlib.h>
#include <fstream>
#include <sstream>
#include <strstream>
#include <list>
#include <set>
#include <math.h>
#include <iomanip>
#include <string>
#include <algorithm>
#include <iterator>

#include <gmp.h>
#include <gmpxx.h>

using namespace std;

// const double my_pi = 4 * atan(1.0);
const double E_TO_THE_GAMMA  = 1.7810724179901979852365 ;
const double GAMMA  = 0.57721566490153286060 ;
const int BOUND = 1875;

//  joseph.cc

//  g++  -o joseph joseph.cc  -lgmp -lgmpxx

string stringify(int x)
{
ostringstream o;
o << x  ;
return o.str();
}

string mp_Factored( mpz_class  i)
{
string fac;
fac = " = ";
int p = 2;
mpz_class  temp = i;
if (temp < 0 )
{
temp *= -1;
fac += " -1 * ";
}

if ( 1 == temp) fac += " 1 ";
if ( temp > 1)
{
int primefac = 0;
while( temp > 1 && p * p <= temp)
{
if (temp % p == 0)
{
++primefac;
if (primefac > 1) fac += " ";
fac += stringify( p) ;
temp /= p;
int exponent = 1;
while (temp % p == 0)
{
temp /= p;
++exponent;
} // while p is fac
if ( exponent > 1)
{
fac += "^" ;
fac += stringify( exponent) ;
}
}  // if p is factor
++p;
} // while p
if (temp > 1 && primefac >= 1) fac += " ";
if (temp > 1 ) fac += stringify( temp.get_ui())  ;
} // temp > 1
return fac;
} // mp_Factored

//  g++  -o joseph joseph.cc  -lgmp -lgmpxx

mpz_class  intpow(int n, int k)
{
mpz_class blob = 1;
for(int j = 1; j <= k; ++j) blob *= n;

return ( blob );

}

mpz_class orourke( mpz_class i)
{
mpz_class joe = 1;

int p = 2;
mpz_class temp = i;
if (temp < 0 )
{
temp *= -1;

}

if ( temp > 1)
{

while( temp > 1 && p * p <= temp)
{
if (temp % p == 0)
{

temp /= p;
int exponent = 1;
while (temp % p == 0)
{
temp /= p;
++exponent;
} // while p is fac
if ( exponent > 1)
{

joe *= exponent ;
}
}  // if p is factor
++p;
} // while p

} // temp > 1
return joe;
} // orourke

//  g++  -o joseph joseph.cc  -lgmp -lgmpxx

int main()
{

ofstream erasefile("joseph.txt");
erasefile.close();

//      double luge = 0.0; // declared later although compile did not complain
double luge_bound = 270.0;  //270.0
// product of exponents
for( int e2 = 2; e2 * log(2.0) <  luge_bound  ; ++e2){
mpz_class  p2 =   intpow(2, e2) ;
double luge2 =   e2 * log(2.0) ;

//   cerr << "2^" << e2 << endl;

for( int e3 = 0; e3 <= e2 && luge2 + e3 * log(3.0) <  luge_bound  ; ++e3){
mpz_class  p3 = p2 *  intpow(3, e3) ;
double luge3 = luge2 + e3 * log(3.0)  ;

//   cerr << "2^" << e2 << "  3^" << e3 << endl;

for( int e5 = 0; e5 <= e3 && luge3 + e5 * log(5.0) <  luge_bound  ; ++e5){
mpz_class  p5 = p3 *  intpow(5, e5) ;
double luge5 = luge3 + e5 * log(5.0)  ;

//   cerr << "2^" << e2 << "  3^" << e3  << "  5^" << e5 << endl;

for( int e7 = 0; e7 <= e5 && luge5 + e7 * log(7.0) <  luge_bound  ; ++e7){
mpz_class  p7 = p5 *  intpow(7, e7) ;
double luge7 = luge5 + e7 * log(7.0)  ;

cerr << "2^" << e2 << "  3^" << e3  << "  5^" << e5  << "  7^" << e7  << endl;
system("date");
cout << endl;

for( int e11 = 0; e11 <= e7 && luge7 + e11 * log(11.0) <  luge_bound  ; ++e11){
mpz_class  p11 = p7 *  intpow(11, e11) ;
double luge11 = luge7 + e11 * log(11.0)  ;

for( int e13 = 0; e13 <= e11 && luge11 + e13 * log(13.0) <  luge_bound  ; ++e13){
mpz_class  p13 = p11 *  intpow(13, e13) ;
double luge13 = luge11 + e13 * log(13.0)  ;

for( int e17 = 0; e17 <= e13 && luge13 + e17 * log(17.0) <  luge_bound  ; ++e17){
mpz_class  p17 = p13 *  intpow(17, e17) ;
double luge17 = luge13 + e17 * log(17.0)  ;

for( int e19 = 0; e19 <= e17 && luge17 + e19 * log(19.0) <  luge_bound  ; ++e19){
mpz_class  p19 = p17 *  intpow(19, e19) ;
double luge19 = luge17 + e19 * log(19.0)  ;

for( int e23 = 0; e23 <= e19 && luge19 + e23 * log(23.0) <  luge_bound  ; ++e23){
mpz_class  p23 = p19 *  intpow(23, e23) ;
double luge23 = luge19 + e23 * log(23.0)  ;

for( int e29 = 0; e29 <= e23 && luge23 + e29 * log(29.0) <  luge_bound  ; ++e29){
mpz_class  p29 = p23 *  intpow(29, e29) ;
double luge29 = luge23 + e29 * log(29.0)  ;

for( int e31 = 0; e31 <= e29 && luge29 + e31 * log(31.0) <  luge_bound  ; ++e31){
mpz_class  p31 = p29 *  intpow(31, e31) ;
double luge31 = luge29 + e31 * log(31.0)  ;

for( int e37 = 0; e37 <= e31 && luge31 + e37 * log(37.0) <  luge_bound  ; ++e37){
mpz_class  p37 = p31 *  intpow(37, e37) ;
double luge37 = luge31 + e37 * log(37.0)  ;

for( int e41 = 0; e41 <= e37 && luge37 + e41 * log(41.0) <  luge_bound  ; ++e41){
mpz_class  p41 = p37 *  intpow(41, e41) ;
double luge41 = luge37 + e41 * log(41.0)  ;

for( int e43 = 0; e43 <= e41 && luge41 + e43 * log(43.0) <  luge_bound  ; ++e43){
mpz_class  p43 = p41 *  intpow(43, e43) ;
double luge43 = luge41 + e43 * log(43.0)  ;

for( int e47 = 0; e47 <= e43 && luge43 + e47 * log(47.0) <  luge_bound  ; ++e47){
mpz_class  p47 = p43 *  intpow(47, e47) ;
double luge47 = luge43 + e47 * log(47.0)  ;

for( int e53 = 0; e53 <= e47 && luge47 + e53 * log(53.0) <  luge_bound  ; ++e53){
mpz_class  p53 = p47 *  intpow(53, e53) ;
double luge53 = luge47 + e53 * log(53.0)  ;

for( int e59 = 0; e59 <= e53 && luge53 + e59 * log(59.0) <  luge_bound  ; ++e59){
mpz_class  p59 = p53 *  intpow(59, e59) ;
double luge59 = luge53 + e59 * log(59.0)  ;

for( int e61 = 0; e61 <= e59 && luge59 + e61 * log(61.0) <  luge_bound  ; ++e61){
mpz_class  p61 = p59 *  intpow(61, e61) ;
double luge61 = luge59 + e61 * log(61.0)  ;

for( int e67 = 0; e67 <= e61 && luge61 + e67 * log(67.0) <  luge_bound  ; ++e67){
mpz_class  p67 = p61 *  intpow(67, e67) ;
double luge67 = luge61 + e67 * log(67.0)  ;

for( int e71 = 0; e71 <= e67 && luge67 + e71 * log(71.0) <  luge_bound  ; ++e71){
mpz_class  p71 = p67 *  intpow(71, e71) ;
double luge71 = luge67 + e71 * log(71.0)  ;

for( int e73 = 0; e73 <= e71 && luge71 + e73 * log(73.0) <  luge_bound  ; ++e73){
mpz_class  p73 = p71 *  intpow(73, e73) ;
double luge73 = luge71 + e73 * log(73.0)  ;

for( int e79 = 0; e79 <= e73 && luge73 + e79 * log(79.0) <  luge_bound  ; ++e79){
mpz_class  p79 = p73 *  intpow(79, e79) ;
double luge79 = luge73 + e79 * log(79.0)  ;

for( int e83 = 0; e83 <= e79 && luge79 + e83 * log(83.0) <  luge_bound  ; ++e83){
mpz_class  p83 = p79 *  intpow(83, e83) ;
double luge83 = luge79 + e83 * log(83.0)  ;

for( int e89 = 0; e89 <= e83 && luge83 + e89 * log(89.0) <  luge_bound  ; ++e89){
mpz_class  p89 = p83 *  intpow(89, e89) ;
double luge89 = luge83 + e89 * log(89.0)  ;

for( int e97 = 0; e97 <= e89 && luge89 + e97 * log(97.0) <  luge_bound  ; ++e97){
mpz_class  p97 = p89 *  intpow(97, e97) ;
double luge97 = luge89 + e97 * log(97.0)  ;

for( int e101 = 0; e101 <= e97 && luge97 + e101 * log(101.0) <  luge_bound  ; ++e101){
mpz_class  p101 = p97 *  intpow(101, e101) ;
double luge101 = luge97 + e101 * log(101.0)  ;

for( int e103 = 0; e103 <= e101 && luge101 + e103 * log(103.0) <  luge_bound  ; ++e103){
mpz_class  p103 = p101 *  intpow(103, e103) ;
double luge103 = luge101 + e103 * log(103.0)  ;

for( int e107 = 0; e107 <= e103 && luge103 + e107 * log(107.0) <  luge_bound  ; ++e107){
mpz_class  p107 = p103 *  intpow(107, e107) ;
double luge107 = luge103 + e107 * log(107.0)  ;

for( int e109 = 0; e109 <= e107 && luge107 + e109 * log(109.0) <  luge_bound  ; ++e109){
mpz_class  p109 = p107 *  intpow(109, e109) ;
double luge109 = luge107 + e109 * log(109.0)  ;

for( int e113 = 0; e113 <= e109 && luge109 + e113 * log(113.0) <  luge_bound  ; ++e113){
mpz_class  p113 = p109 *  intpow(113, e113) ;
double luge113 = luge109 + e113 * log(113.0)  ;

for( int e127 = 0; e127 <= e113 && luge113 + e127 * log(127.0) <  luge_bound  ; ++e127){
mpz_class  p127 = p113 *  intpow(127, e127) ;
double luge127 = luge113 + e127 * log(127.0)  ;

for( int e131 = 0; e131 <= e127 && luge127 + e131 * log(131.0) <  luge_bound  ; ++e131){
mpz_class  p131 = p127 *  intpow(131, e131) ;
double luge131 = luge127 + e131 * log(131.0)  ;

for( int e137 = 0; e137 <= e131 && luge131 + e137 * log(137.0) <  luge_bound  ; ++e137){
mpz_class  p137 = p131 *  intpow(137, e137) ;
double luge137 = luge131 + e137 * log(137.0)  ;

for( int e139 = 0; e139 <= e137 && luge137 + e139 * log(139.0) <  luge_bound  ; ++e139){
mpz_class  p139 = p137 *  intpow(139, e139) ;
double luge139 = luge137 + e139 * log(139.0)  ;

for( int e149 = 0; e149 <= e139 && luge139 + e149 * log(149.0) <  luge_bound  ; ++e149){
mpz_class  p149 = p139 *  intpow(149, e149) ;
double luge149 = luge139 + e149 * log(149.0)  ;

//  g++  -o joseph joseph.cc  -lgmp -lgmpxx

mpz_class p = p149;
double luge = luge149;

if (   orourke(orourke(orourke(orourke(orourke(p))))) != 1 &&    orourke(orourke(orourke(orourke(orourke(orourke(p)))))) == 1  && luge < luge_bound  )
{
cout <<  setw(12) << luge / log(10.0) << "  "  << p << mp_Factored(p) << " " << orourke(p) << endl;
luge_bound = luge;

ofstream outfile("joseph.txt",ios::app);
outfile <<  setw(12) << luge / log(10.0) << "  "  << p << mp_Factored(p) << " " <<   orourke(p)  << " " <<    orourke(orourke(p)) << endl;

outfile.close();  // close quickly save partial progress
system("date >> joseph.txt") ;

} // if

} // 149
} // 139
} // 137
} // 131
} // 127
} // 113
} // 109
} // 107
} // 103
} // 101
} // 97
} // 89
} // 83
} // 79
} // 73
} // 71
} // 67
} // 61
} // 59
} // 53
} // 47
} // 43
} // 41
} // 37
} // 31
} // 29
} // 23
} // 19
} // 17
} // 13
} // 11
} // 7
} // 5
} // 3
} // 2

return 0 ;
}


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

-
Hey, Will. You should know better than to keep reediting and adding new answers multiple times and bumping the question to the front page over and over and over again. –  Felipe Voloch Oct 8 '13 at 2:11
@Felipe, Joseph indicated he might not have time to program this search. I decided to do it myself...At this point, what would you like me to do? –  Will Jagy Oct 8 '13 at 2:34

Alright, an upper bound on $m(6)$ is $$B = 2^{11} 3^{11} 5^7 7^7 11^7 13^5 17^5 19^5 23^5 29^3 31^3 37^3 41^3 43^3 47^3 53^2 59^2 61^2 67^2 71^2 73^2 79^2 83^2 89^2$$ which is sort of large, granted.

Next, find the first primorial (product of the consecutive primes beginning with 2) that exceeds $\sqrt B.$ Call the largest prime factor of that primorial $Q = p_r,$ where $p_1=2, p_2=3,$ and so on. I imagine $r < 100$ and maybe $r < 50.$

Finally, run the $r$-tuple loop with nonincreasing exponents on the primes $2,3,\ldots,p_r$ such that each resulting number $N$ given by that prime factorization is less than $B \cdot e^{10}$ by using logarithms, that is $\log N < \log B + 10.0.$

For each such $N$ that satisfies $p(p(p(p(p(p(N)))))) = 1$ but $p(p(p(p(p(N))))) \neq 1,$ print out a line beginning with $\log N$ followed by the $r$-tuple of exponents. Sort. Alternatively, print out nothing, but save $\log N$ and its $r$-tuple in a datatype of some kind, and keep replacing every time a smaller $\log N$ appears. In the end, print out that information. Or, as a sort of hybrid that I like, print out every time $\log N$ decreases. In the beginning, improvements come thick and fast, then slow down as you near the winner. Nice to see some progress reports, you see.

I claim this can actually be done, successfully. Good exercise for certain types of programming class, although the math part may need explaining. Getting a 50 variable multiple loop with certain bounds built in is likely a bit of work...

FRIDAY: At least I was able to find the bound on primes. The big number $B \approx 1.2 \cdot 10^{113},$ and $\sqrt B \approx 3.4 \cdot 10^{56}.$ It suffices to use the first 35 primes in the multiple loop, as the "primorial" $$P_{35} = 2 \cdot 3 \cdot 5 \cdot 7 \cdot 11 \cdots 137 \cdot 139 \cdot 149 \approx 1.5 \cdot 10^{57}$$ is larger than $\sqrt B.$ Oh, I always use logs base $e \approx 2.718287828,$ and $$\log B \approx 260.37$$ Given that the loop has 35 variables rather than 100, I can probably do this myself, but certain parts do need to be rewritten in GMP. I also suspect that running time need not be huge, although such predictions sometimes disappear in the face of reality.

-
"which is sort of large, granted." :-) –  Joseph O'Rourke Oct 3 '13 at 23:22
Note that p^4 can sometimes replace p^2 q^2 and for p(6) 89^2 is larger than 2^11, so I think only primes less than 70 are needed. –  The Masked Avenger Oct 4 '13 at 4:34
@TheMaskedAvenger, I think I understand; reduce the bound $B$ and you get faster run time. Indeed, after dong that, there is nothing to prevent replacing $B$ by $N$ every time we get some $N < B,$ and perhaps drop the $10.0$ –  Will Jagy Oct 4 '13 at 4:58

I neglected to use a special feature of your function, which works the same as the number of divisors function but not the sum of divisors function. That is, if some number $n$ fails to have non-increasing exponents, then there is a smaller number $m,$ constructed by putting the exponents in decreasing order and attaching them to the primes 2,3, etc., such that $p(m)$ is exactly the same as $p(n).$

THEOREM: $m(k)$ has non-increasing exponents in its prime factorization.

COROLLARY: $m(5) = 2^9 3^6 5^4 7^3 11^2.$

-