Cod sursa(job #2634347)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 10 iulie 2020 17:29:49
Problema Al k-lea termen Fibonacci Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.54 kb
MOD = 666013

def multiply(A, B, C):
    for i in range(2):
        for j in range(2):
            for k in range(2):
                C[i][j] = (C[i][j] + A[i][k] * B[k][j]) % MOD

n = int(input()) - 1
C = [[0, 1, 0], [1, 1, 0], [0, 0, 0]]
M = [[1, 0, 0], [0, 1, 0], [0, 0, 0]]

i = 0
while (1 << i) <= n:
    if n & (1 << i):
        AUX = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
        multiply(M, C, AUX)
        M = AUX
    
    AUX = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
    multiply(C, C, AUX)
    C = AUX

    i += 1

print(M[1][1])