A023183 a(n) = least k such that Fibonacci(k) ends with n, or -1 if there are none.
0, 1, 3, 4, 9, 5, 21, 14, 6, 11, 15, 22, 216, 7, 111, 130, 168, 37, 27, 112, 60, 8, 117, 64, 198, 25, 99, 136, 204, 29, 105, 88, 174, 13, 9, 70, 222, 43, 93, 172, 30, 41, 63, 124, 12, 55, 21, 154, 186, 49, 75, 148, 36, 67, 129, 10, 162, 23, 87, 118, 180, 61, 57, 166, 72, 20
Offset: 0
Links
- Robert Israel, Table of n, a(n) for n = 0..9999
Programs
-
Maple
V:= Array(0..999,-1): V[0]:= 0: u:= 1: v:= 0: for n from 1 to 1500 do t:= v; v:= u+v mod 1000; u:= t; if V[v] = -1 then V[v]:= n fi; if V[v mod 100] = -1 then V[v mod 100] := n fi; if V[v mod 10] = -1 then V[v mod 10]:= n fi; od: seq(V[i],i=0..999); # Robert Israel, Sep 11 2020
-
Mathematica
d[n_]:=IntegerDigits[n]; Table[j=0; While[Length[d[Fibonacci[j]]]<(le=Length[y=d[n]]), j++]; i=j; While[Take[d[Fibonacci[i]],-le]!=y,i++]; i,{n,0,65}] (* Jayanta Basu, May 18 2013 *)
-
Python
from itertools import count def A023183(n): if n < 2: return n if n > 99 and n%8 in {4, 6}: return -1 k, f, g, s = 3, 1, 2, str(n) pow10, seen = 10**len(s), set() while (f, g) not in seen: seen.add((f, g)) if g%pow10 == n: return k f, g, k = g, (f+g)%pow10, k+1 return -1 print([A023183(n) for n in range(66)]) # Michael S. Branicky, Jun 27 2024
Comments