%I #46 Jun 04 2024 07:39:59
%S 1,5,6,9,11,16,21,25,31,36,41,49,51,56,57,61,71,75,76,81,91,93,96,99,
%T 101,125,151,176,193,201,249,251,301,351,375,376,401,451,499,501,551,
%U 557,576,601,625,651,693,701,749,751,776,801,851,875,901,951,976,999
%N Numbers k such that k^k has final digits the same as all the digits of k.
%C k^k^k also has the same final digits as k. - _Ed Pegg Jr_, Jun 27 2013
%C For any positive integer r the sequence contains 10^r-1. - _Reiner Moewald_, Feb 14 2016
%C From _Robert Israel_, Mar 04 2016: (Start)
%C All terms > 96 end in 01, 25, 49, 51, 57, 75, 76, 93 or 99.
%C It appears that except for 1, 5, 6, 9, 57 and 93, if k is a term then so is the number obtained from k by deleting its first digit. (End)
%D Suggested by _Herb Conn_.
%H Charles R Greathouse IV, <a href="/A082576/b082576.txt">Table of n, a(n) for n = 1..10000</a>
%H <a href="/index/Ar#automorphic">Index entries for sequences related to automorphic numbers</a>
%F { k : k^k mod 10^(1+floor(log_10(k))) = k }. - _Jon E. Schoenfield_, Jun 02 2024
%e 9^9 = 387420489 ends in 9, so 9 is a term.
%e 11^11 = 285311670611 ends in 11, so 11 is a term.
%p a:= proc(n) option remember; local k; for k from 1+
%p a(n-1) while k&^k mod (10^length(k))<>k do od; k
%p end: a(1):=1:
%p seq(a(n), n=1..100); # _Alois P. Heinz_, Jun 27 2013
%p select(n -> n&^n mod 10^(1+ilog10(n)) = n, [$1..1000]); # _Robert Israel_, Mar 04 2016
%t Select[Range@ 1000, Function[k, Take[IntegerDigits[#^#], -Length@ k] == k]@ IntegerDigits@ # &] (* _Michael De Vlieger_, Mar 04 2016 *)
%t Select[Range[1000],PowerMod[#,#,10^IntegerLength[#]]==#&] (* _Harvey P. Dale_, Dec 21 2019 *)
%o (PARI) for (d = 1, 4, for (i = 10^(d - 1), 10^d - 1, x = Mod(i, 10^d); if (x^i == x, print(i)))) \\ _David Wasserman_, Oct 27 2006
%o (PARI) is(n)=my(d=digits(n));Mod(n,10^#d)^n==n \\ _Charles R Greathouse IV_, Jan 02 2013
%o (Python)
%o from itertools import count
%o def A082576_gen(): # generator of terms
%o yield from (1, 5, 6, 9, 11, 16, 21, 25, 31, 36, 41, 49, 51, 56, 57, 61, 71, 75, 76, 81, 91, 93, 96, 99)
%o for i in count(100,100):
%o for j in (1, 25, 49, 51, 57, 75, 76, 93, 99):
%o m = i+j
%o if pow(m,m,10**(len(str(m)))) == m:
%o yield m
%o A082576_list = list(islice(A082576_gen(),50)) # _Chai Wah Wu_, Jun 02 2024
%Y Cf. A002283.
%K nonn,base
%O 1,2
%A _Gary W. Adamson_, May 07 2003
%E More terms from _David Wasserman_, Oct 27 2006