OFFSET

1,3

COMMENTS

0, 1, 8 and 144 are the only Fibonacci numbers that are themselves perfect powers (see A227875).

A term might have multiple permutations which are perfect powers.

Leading 0 digits are allowed in the perfect power, so that 610 is a term since 016 = 2^4.

From David A. Corneth, Feb 17 2024: (Start)

Four ideas to find terms:

1. For each Fibonacci number, check each anagram to determine whether it is a perfect power. A Fibonacci number is a term if and only if such an anagram exists.

2. Let q be the number of digits of some Fibonacci number F. Then check all perfect powers m < 10^q if the frequency of positive digits matches the corresponding positive digits of F and F has at least as many 0's as m. E.g., 610 is a term as the perfect power 16 has the same number of 1's, and the same number of 6's, and 610 has at least as many 0's as 16.

3. Match the last digits of perfect powers and whittle down the number of candidates. So for 46368, a perfect square must end in 4 or 6 for the last digit, 36, 64 or 84 for the last two digits and so on.

4. If some Fibonacci number F has q digits then we could list the possible strings the first floor((q + 1)/2) such numbers could form and see what squares start with those digits. (End)

a(46) = 1500520536206896083277. Some other terms: 3928413764606871165730, 6356306993006846248183, 10284720757613717413913, 16641027750620563662096, 26925748508234281076009, 43566776258854844738105, 3311648143516982017180081, 5358359254990966640871840, 8670007398507948658051921, 14028366653498915298923761, 155576970220531065681649693, 659034621587630041982498215, 30960598847965113057878492344. - Chai Wah Wu, Mar 27 2024

LINKS

Michael S. Branicky, Table of n, a(n) for n = 1..45

EXAMPLE

46368 is a term because it is a Fibonacci number whose digits can be permuted to 36864 = 192^2 (and also to 86436 = 294^2).

PROG

(PARI) isok(f) = my(d=digits(f), n=#d); for (i=1, n!, my(p=numtoperm(n, i), dd=vector(#d, i, d[p[i]])); if (ispower(fromdigits(dd)), return(1)); );

lista(nn) = my(list = List([0, 1])); for (n=3, nn, my(f=fibonacci(n)); if (isok(f), listput(list, f)); ); Vec(list); \\ Michel Marcus, Feb 17 2024

(Python)

from itertools import count, islice

from sympy import integer_log

def A370071_gen(): # generator of terms

a, b = 1, 2

yield from (0, 1)

while True:

s = sorted(str(b))

l = len(s)

m = int(''.join(s[::-1]))

u = int(''.join(s))

for i in count(2):

if i**2 > m:

break

for j in count(max(2, integer_log(u, i)[0])):

if (k:=i**j) > m:

break

t = sorted(str(k))

if ['0']*(l-len(t))+t == s:

yield b

break

else:

continue

if k<=m:

break

a, b = b, a+b

CROSSREFS

KEYWORD

nonn,base

AUTHOR

Gonzalo MartÃnez, Feb 08 2024

EXTENSIONS

a(19) inserted and a(21)-a(23) by Michael S. Branicky, Feb 17 2024

More terms from David A. Corneth, Feb 17 2024

STATUS

approved