Pagini recente » Cod sursa (job #1532295) | Cod sursa (job #1971050) | Cod sursa (job #2025166) | Cod sursa (job #1817154) | Cod sursa (job #781598)
Cod sursa(job #781598)
#include <cstdio>
#include <cstring>
#define Mod 666013
int f[2][2] = {{0,1},{1,1}}, a[2][2] = {{0,1},{1,1}} ,n;
void produs(int f[2][2],int a[2][2])
{
int x[2][2]; memset(x,0,sizeof(x));
for(int i=0;i<2;i++)
for(int j=0;j<2;j++)
for(int k=0;k<2;k++)
x[i][j] = (x[i][j] + (long long)f[i][k] * a[k][j]) % Mod;
for(int i=0;i<2;i++)
for(int j=0;j<2;j++) f[i][j] = x[i][j];
}
void pow(int n){
if(n > 1)
{
pow(n/2);
if(n%2)
{
produs(f,f);
produs(f,a);
} else
produs(f,f);
}
}
int main(){
freopen("kfib.in","r",stdin);
freopen("kfib.out","w",stdout);
scanf("%d",&n);
pow(n+1);
printf("%d\n",f[0][0]);
return 0;
}