Cod sursa(job #3132632)

Utilizator CristiL75Cristi Latcu CristiL75 Data 23 mai 2023 12:37:50
Problema Al k-lea termen Fibonacci Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include<bits/stdc++.h>
const int modul=666013;
using namespace std;
void inmult(long long M1[2][2],long long M2[2][2],long long M3[2][2])
{
     int i,j,l;
    for(i=0;i<2;i++)
        for(j=0;j<2;j++)
    {
        M3[i][j]=0;
        for(l=0;l<2;l++)
            M3[i][j]=(M3[i][j]+M1[i][l]*M2[l][j])%modul;
    }
    for(i=0;i<2;i++)
        for(j=0;j<2;j++)
           M1[i][j]=M3[i][j];
}
long long M1[2][2]={{1,0},{0,1}},M2[2][2]={{0,1},{1,1}},M3[2][2];
int putere(int N)
{
    while(N>0)
    {
       if(N%2==1)
            inmult(M1,M2,M3);
       N=N/2;
       inmult(M1,M1,M3);
    }
    return M1[1][1];
}
int main()
{
    int k;
    ifstream f("kfib.in");
    ofstream g("kfib.out");
    f>>k;
    g<<putere(k);

}