OFFSET
1,2
COMMENTS
This is an involution on the natural numbers: applying it twice gives the identity permutation.
LINKS
Chai Wah Wu, Table of n, a(n) for n = 1..10000
A. B. Frizell, Certain non-enumerable sets of infinite permutations. Bull. Amer. Math. Soc. 21 (1915), no. 10, 495-499.
MAPLE
f:= proc(t)
local r;
if t mod 2 = 0 and isprime(t/2) then 3*nextprime(t/2)
elif t mod 3 = 0 and isprime(t/3) then 2*prevprime(t/3)
elif isprime(t) then
r:= numtheory:-pi(t);
if isprime(r) then ithprime(2*r)
elif r mod 2 = 0 and isprime(r/2) then ithprime(r/2)
else t
fi
else t
fi
end proc:
seq(f(i), i=1..100); # Robert Israel, Dec 26 2014
MATHEMATICA
f[t_] := Module[{r}, Which[EvenQ[t] && PrimeQ[t/2], 3 NextPrime[t/2], Divisible[t, 3] && PrimeQ[t/3], 2 NextPrime[t/3, -1], PrimeQ[t], r = PrimePi[t]; Which[PrimeQ[r], Prime[2r], EvenQ[r] && PrimeQ[r/2], Prime[r/2], True, t], True, t]];
Array[f, 100] (* Jean-François Alcover, Jul 27 2020, after Robert Israel *)
PROG
(Python)
from sympy import isprime, primepi, prevprime, nextprime, prime
def A253047(n):
if n <= 2:
return n
if n == 3:
return 7
q2, r2 = divmod(n, 2)
if r2:
q3, r3 = divmod(n, 3)
if r3:
if isprime(n):
m = primepi(n)
if isprime(m):
return prime(2*m)
x, y = divmod(m, 2)
if not y:
if isprime(x):
return prime(x)
return n
if isprime(q3):
return 2*prevprime(q3)
return n
if isprime(q2):
return 3*nextprime(q2)
return n # Chai Wah Wu, Dec 27 2014
CROSSREFS
KEYWORD
nonn
AUTHOR
N. J. A. Sloane, Dec 26 2014
EXTENSIONS
Definition supplied by Robert Israel, Dec 26 2014
Offset changed to 1 by Chai Wah Wu, Dec 27 2014
STATUS
approved
