Cod sursa(job #2635360)

Utilizator k2e0e0w3qDumitrescu Gheorghe k2e0e0w3q Data 14 iulie 2020 11:28:53
Problema Al k-lea termen Fibonacci Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 0.51 kb
import math

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]) % 666013

n = int(open('kfib.in').read())
C = [[0, 1], [1, 1]]
M = [[1, 0], [0, 1]]

for i in range(int(math.log2(n)+1)):
    if n & (1 << i):
        AUX = [[0, 0], [0, 0]]
        multiply(M, C, AUX)
        M = AUX
    
    AUX = [[0, 0], [0, 0]]
    multiply(C, C, AUX)
    C = AUX

open('kfib.out', 'w').write(str(M[1][1]))