Pagini recente » Cod sursa (job #243172) | Cod sursa (job #2957233) | Cod sursa (job #808235) | Cod sursa (job #2660719) | Cod sursa (job #2715504)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
const int MOD=666013;
void produs(long long p[2][2],long long a[2][2],long long b[2][2])
{
long long aux[2][2];
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
aux[i][j]=0;
for(int k=0;k<2;k++)
{
aux[i][j]+=((a[i][k]%MOD)*(b[k][j]%MOD))%MOD;
aux[i][j]=aux[i][j]%MOD;
}
}
}
for(int i=0;i<2;i++)
{
for(int j=0;j<2;j++)
{
p[i][j]=aux[i][j];
}
}
}
long long a[2][2],f[2][2];
int main()
{
long long n;
fin>>n;
a[0][0]=1;
a[0][1]=1;
a[1][0]=1;
a[1][1]=0;
f[0][0]=1;
f[1][1]=1;
while(n!=0)
{
if(n%2!=0)
{
produs(f,f,a);
}
produs(a,a,a);
n=n/2;
}
fout<<f[1][0];
return 0;
}