Pagini recente » Cod sursa (job #2245336) | Cod sursa (job #625268) | Cod sursa (job #1895202) | Cod sursa (job #41351) | Cod sursa (job #395886)
Cod sursa(job #395886)
#include<cstdio>
int a,b,pp[3][3],A[3][3];
void prod(int X1[3][3],int X2[3][3])
{
int X3[3][3];
for(int i=1;i<=2;++i)
for(int j=1;j<=2;++j)
{
X3[i][j]=0;
for(int k=1;k<=2;++k)
X3[i][j]=(X3[i][j]+(long long)((long long)(X1[i][k]%b)*(long long)(X2[k][j]%b))%b)%b;
}
for(int i=1; i<=2; ++i)
for(int j=1; j<=2; ++j)
X1[i][j]=X3[i][j];
}
void rez(int p)
{
pp[1][1]=1; pp[1][2]=0; pp[2][1]=0; pp[2][2]=1;
A[1][1]=1; A[2][1]=1; A[1][2]=1; A[2][2]=0;
while(p)
{
if(p%2==1)
{
prod(pp,A);
}
prod(A,A);
p/=2;
}
int c[3][3];
c[1][1]=1; c[1][2]=0; c[2][1]=0; c[2][2]=0;
prod(pp,c);
printf("%d",pp[2][1]);
}
int main()
{
freopen("kfib.in","r",stdin);
freopen("kfib.out","w",stdout);
scanf("%d",&a); b=666013;
rez(a);
return 0;
}