0

整数のピサノ周期を計算したい2 <= m <= 100000

このコードは現在m>4、 に対して機能していません。m>4出力表示は9です。以下のコードで間違っているのは何ですか。

def fib(n):
    i=0
    f=[]
    while(i<=n):
        f.append(i)
        i+=1
    i=2
    while(i<=n):
        f[i]=f[i-1]+f[i-2]
        i+=1
    return f[n]

m=int(input())
j=2
p=[0,1,1,2]
while (p[j-1]!=1 and p[j-2]!=0):

    h=fib(j)%m
    p.append(h)
    j+=1

print(len(p)) 
4

1 に答える 1