Pagini recente » Cod sursa (job #584007) | Cod sursa (job #1885357) | Cod sursa (job #454503) | Cod sursa (job #1895539) | Cod sursa (job #1872765)
#include <iostream>
#include <cstring>
#include <cstdio>
#define mod 666013
using namespace std;
int K;
void ProdMat(int a1[2][2], int b1[2][2], int c[2][2])
{
int a[2][2], b[2][2], c1[2][2];
for(int i=0; i<2; ++i)
for(int j=0; j<2; ++j)
{
a[i][j]=a1[i][j];
b[i][j]=b1[i][j];
}
for(int i=0; i<2; ++i)
for(int j=0; j<2; ++j)
{
c[i][j]=0;
for(int k=0; k<2; ++k)
c[i][j]=(c[i][j]+(long long)(a[i][k])*(b[k][j])%mod)%mod;
}
}
int resoudre(int k)
{
int mat[2][2]= {{0,1},{1,1}};
int rez[2][2]= {{0,1},{1,1}};
do
{
if(k%2==1)
ProdMat(rez,mat,rez);
ProdMat(mat,mat,mat);
k/=2;
}while(k);
return rez[0][0];
}
int main()
{
freopen("kfib.in", "r", stdin);
freopen("kfib.out", "w", stdout);
scanf("%d", &K);
cout<<resoudre(K);
return 0;
}