Pagini recente » Cod sursa (job #668328) | Cod sursa (job #1772919) | Cod sursa (job #584045) | Cod sursa (job #2470017) | Cod sursa (job #1241069)
#include <stdio.h>
#include <cstdlib>
using namespace std;
unsigned long x[2][2]={{0,1},{1,1}},n;
FILE *f1=fopen("kfib.in","r"),*f2=fopen("kfib.out","w");
void inmulteste(int putere)
{
unsigned long a[2][2]={{0,1},{1,1}},y,z,t;
for(;putere>0;putere--)
{
y=a[0][0]*x[0][1]+a[0][1]*x[1][1]%666013;
z=a[1][0]*x[0][0]+a[1][1]*x[1][0]%666013;
t=a[1][0]*x[0][1]+a[1][1]*x[1][1]%666013;
a[0][1]=y;
a[1][0]=z;
a[1][1]=t;
}
x[1][0]=a[1][0];
x[0][1]=a[0][1];
x[1][1]=a[1][1];
}
int main()
{
fscanf(f1,"%u",&n);
inmulteste(n-2);
fprintf(f2,"%u",x[1][1]);
return 0;
}
//Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time.