|
|
A323785
|
|
Iteratively swap prime factors of n with their exponent (unless the exponent is 1), until a cycle is reached, and then record the largest term in the cycle.
|
|
1
|
|
|
1, 2, 3, 4, 5, 6, 7, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 16, 19, 20, 21, 22, 23, 27, 32, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 32, 37, 38, 39, 45, 41, 42, 43, 44, 45, 46, 47, 48, 128, 32, 51, 52, 53, 54, 55, 63, 57, 58, 59, 60, 61, 62, 63, 32, 65, 66, 67
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
1,2
|
|
LINKS
|
|
|
EXAMPLE
|
For n=196, the iterative procedure evolves as follows: 196 = 2^2 * 7^2 --> 2^2 * 2^7 = 2^9 --> 9^2 = 3^4 --> 4^3 = 2^6 --> 6^2 = 3^2 * 2^2 --> 2^3 * 2^2 = 2^5 --> 5^2 --> 2^5 = 32.
Since the iterative procedure stabilizes in the cycle 2^5=32 <--> 5^2=25, of length 2, the largest ,member of which is 32, we get a(196)=32.
|
|
MATHEMATICA
|
p[x_, y_] := If[y > 1, y^x, x^y]; f[n_] := Times @@ (p[First[#], Last[#]] & /@ FactorInteger[n]); a[n_] := Module[{k = n, s = {k}}, While[! MemberQ[s, (k = f[k])], AppendTo[s, k]]; ind = Position[s, _?(# == k &)][[1, 1]]; Max[s[[ind ;; -1]]]]; Array[a, 57] (* Amiram Eldar, Sep 02 2019 *)
|
|
PROG
|
# (Python3)
def a(n):
np = swap_prime_factors_with_exponents(n)
npp = swap_prime_factors_with_exponents(np)
return max(n, np) if n == npp else a(npp)
def swap_prime_factors_with_exponents(n):
np = 1
for p in primes:
q = 0
while n % p == 0:
q += 1
n = n // p
if q > 1: np *= q ** p
if q == 1: np *= p
if n > 1: np *= n
return np
N = 200
primes = []
for n in range(2, int(N ** (1/2)) + 1):
if all(n % p > 0 for p in primes):
primes.append(n)
for n in range(1, N+1):
print(n, a(n))
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|