OFFSET
1,1
LINKS
Michael S. Branicky, Table of n, a(n) for n = 1..10000
Wikipedia, Ruth-Aaron pair.
EXAMPLE
11 is a term because sopfr(10) = sopfr(2*5) = 2+5 = 7 and sopfr(12) = sopfr(2^2*3) = 2+2+3 = 7.
17 is a term because sopfr(16) = sopfr(2^4) = 2+2+2+2 = 8 and sopfr(18) = sopfr(2*3^2) = 2+3+3 = 8.
31 is a term because sopfr(30) = sopfr(2*3*5) = 2+3+5 = 10 and sopfr(32) = sopfr(2^5) = 2+2+2+2+2 = 10.
155 is a term because sopfr(154) = sopfr(2*7*11) = 2+7+11 = 20 and sopfr(156) = sopfr(2^2*3*13) = 2+2+3+13 = 20.
251 is a term because sopfr(250) = sopfr(2*5^3) = 2+5+5+5 = 17 and sopfr(252) = sopfr(2^2*3^2*7) = 2+2+3+3+7 = 17.
MATHEMATICA
sopfr[n_] := If[n == 1, 0, Total[Flatten[Table[#[[1]], #[[2]]] & /@ FactorInteger[n]]]]; Select[Range[2, 100000], sopfr[# - 1] == sopfr[# + 1] &]
PROG
(PARI) sopfr(n) = (n=factor(n))[, 1]~*n[, 2]; \\ A001414
isok(k) = sopfr(k-1) == sopfr(k+1); \\ Michel Marcus, Feb 16 2026
(Python)
from sympy import factorint
from itertools import count, islice
def sopfr(k): return sum(p*e for p, e in factorint(k).items())
def agen(STARTK=1): # generator of terms
sk1, sk2, sk3 = sopfr(STARTK), sopfr(STARTK+1), sopfr(STARTK+2)
for k in count(STARTK+1):
if sk1 == sk3: yield k
sk1, sk2, sk3 = sk2, sk3, sopfr(k+2)
print(list(islice(agen(), 43))) # Michael S. Branicky, Jul 17 2026
CROSSREFS
KEYWORD
nonn,changed
AUTHOR
Nishant R. Gautam, Jan 29 2026
STATUS
approved
