login
Numbers of the form p^k + p^(k-1) + ... + p + 1 (where p is a prime and k>=0) in ascending order.
3

%I #19 Nov 22 2022 15:44:29

%S 1,3,4,6,7,8,12,13,14,15,18,20,24,30,31,32,38,40,42,44,48,54,57,60,62,

%T 63,68,72,74,80,84,90,98,102,104,108,110,114,121,127,128,132,133,138,

%U 140,150,152,156,158,164,168,174,180,182,183,192,194,198,200

%N Numbers of the form p^k + p^(k-1) + ... + p + 1 (where p is a prime and k>=0) in ascending order.

%C A proper subset of A002191 (e.g., 28 is in A002191, but not in this sequence). a(15)=31 admits two representations: 31=2^4+2^3+2^2+2+1=5^2+5+1. Are there other numbers with two or more representation?

%C I have checked all the sums of primes up to prime number 56873 to a sum total >= 10^100 and have not come across another number that has multiple representations. - Patrick Schutte (patrick(AT)onyxsa.co.za), Mar 28 2007

%C Goormaghtigh conjecture implies that 31 is the only term with 2 representations; see the Wikipedia link below. - _Jianing Song_, Nov 22 2022

%H M. F. Hasler, <a href="/A108348/b108348.txt">Table of n, a(n) for n = 1..1000</a>

%H Wikipedia, <a href="https://en.wikipedia.org/wiki/Goormaghtigh_conjecture">Goormaghtigh conjecture</a>

%e a(2)=3=2+1 since a(1)=1 and 2 is not expressible in the required form.

%o (PARI) A108348(n)={ local(m=1, a=[m]); while( #a<n, m++; forprime(p=2,m, if( m%p==1 && m*(p-1)==p^round(log(m*(p-1))/log(p))-1, a=concat(a,m);next(2)) ));a }; a=A108348(1000) \\ _M. F. Hasler_

%o (GAP) SumNum := function ( FNum) local a,ap,b,bp,at,bt; a := 2; repeat at := 1; ap := 1; repeat at := at + a^ap; b := 2; repeat bt := 1; bp := 1; repeat bt := bt + b^bp; if at = bt and bp > 1 and a <> b then Print("a ",a," ap ",ap," at ", at," "); Print("b ",b," bp ",bp," bt ", bt," "); Print("---------------- "); fi; bp := bp + 1; until bt > at; b := NextPrime(b); until b >=a; ap := ap + 1; until at > 10^100; a := NextPrime(a); until a >FNum; end; # Patrick Schutte (patrick(AT)onyxsa.co.za), Mar 28 2007

%o (Haskell)

%o a108348 n = a108348_list !! (n-1)

%o a108348_list = 1 : f [2..] where

%o f (x:xs) = g a000040_list where

%o g (p:ps) = h 0 $ map ((`div` (p - 1)) . subtract 1) $

%o iterate (* p) (p ^ 2) where

%o h i (pp:pps) | pp > x = if i == 0 then f xs else g ps

%o | pp < x = h 1 pps

%o | otherwise = x : f xs

%o -- _Reinhard Zumkeller_, Nov 26 2013

%Y Cf. A002191.

%Y Cf. A000040, A090503.

%K nonn

%O 1,2

%A _Franz Vrabec_, Jul 01 2005