Pagini recente » Cod sursa (job #3177037) | Cod sursa (job #50229) | Cod sursa (job #607682) | Cod sursa (job #980830) | Cod sursa (job #2716148)
#include <fstream>
using namespace std;
ifstream cin ("kfib.in");
ofstream cout ("kfib.out");
long long f[2][2], a[2][2];
const int mod=666013;
void produs(long long p[2][2], long long a[2][2], long long b[2][2]){
int 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]%=mod;
}
}
}
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
p[i][j]=aux[i][j];
}
}
}
int main()
{
int n;
cin>>n;
f[0][0]=1;
f[1][1]=1;
a[0][0]=1;
a[0][1]=1;
a[1][0]=1;
a[1][1]=0;
while(n>0)
{
if(n%2!=0)
{
produs(f,f,a);
}
produs(a,a,a);
n/=2;
}
cout<<f[1][0];
return 0;
}