Pagini recente » Cod sursa (job #1846332) | Cod sursa (job #628875) | Cod sursa (job #978872) | Cod sursa (job #1438144) | Cod sursa (job #941997)
Cod sursa(job #941997)
#include <fstream>
using namespace std;
ifstream in ("kfib.in");
ofstream out ("kfib.out");
const int R=666013;
long long a[2][2];
void produs()
{
int aux[2][2];
aux[0][0]=(a[0][0]*a[0][0]+a[0][1]*a[1][0])%R;
aux[0][1]=(a[0][0]*a[0][1]+a[0][1]*a[1][0])%R;
aux[1][0]=(a[1][0]*a[0][0]+a[1][1]*a[1][0])%R;
aux[1][1]=(a[1][0]*a[0][1]+a[1][1]*a[1][1])%R;
for(int i=0;i<=1;i++)
for(int j=0;j<=1;j++)
a[i][j]=aux[i][j];
}
void putere(long long n)
{
if(n==1)
return;
if(n%2==1)
{
produs();
}
putere(n/2);
return;
}
int main()
{
int n;
in>>n;
a[0][0]=1;
a[0][1]=1;
a[1][0]=1;
putere(n-1);
out<<a[0][0];
return 0;
}