Pagini recente » Cod sursa (job #1055345) | Cod sursa (job #2482178) | Cod sursa (job #1314053) | Cod sursa (job #1368847) | Cod sursa (job #2421662)
#include <fstream>
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
const int MOD=666013;
void prodmat(long long a[2][2],long long b[2][2],long long c[2][2])
{
int i,j;
for(i=0;i<=1;++i)
for(j=0;j<=1;++j)
{
c[i][j]=a[i][0]*b[0][j]+a[i][1]*b[1][j];
}
}
void fast_pow(int k)
{
int i,j;
long long bb[2][2]={1,1,1,0},p[2][2]={1,0,0,1},r[2][2];
for(;k;k=k>>1)
{
if(k&1)
{
prodmat(p,bb,r);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
p[i][j]=r[i][j]%MOD;
}
prodmat(bb,bb,r);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
bb[i][j]=r[i][j]%MOD;
}
fout<<p[0][1]<<" ";
}
int main()
{
int k,i,j;
fin>>k;
fast_pow(k);
return 0;
}