Pagini recente » Cod sursa (job #656399) | Cod sursa (job #1470005) | Cod sursa (job #544184) | Cod sursa (job #450802) | Cod sursa (job #2404106)
#include<fstream>
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
int x,b[2][2],a[2][2],p[2][2],i,j,m,s,k;
int main()
{
fin>>x;
m=666013;
///a
a[0][0]=0;
a[0][1]=1;
a[1][0]=1;
a[1][1]=1;
///p
p[0][0]=1;
p[0][1]=0;
p[1][0]=0;
p[1][1]=1;
do
{
if(x%2==1)
{
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
{
s=0;
for(k=0;k<=1;k++)
s=(s+(long long)a[i][k]*p[k][j])%m;
b[i][j]=s;
}
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
p[i][j]=b[i][j];
}
x=x/2;
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
{
s=0;
for(k=0;k<=1;k++)
s=(s+(long long)a[i][k]*a[k][j])%m;
b[i][j]=s;
}
for(i=0;i<=1;i++)
for(j=0;j<=1;j++)
a[i][j]=b[i][j];
}
while(x>0);
fout<<p[x][1];
fin.close();
fout.close();
return 0;
}