Pagini recente » Cod sursa (job #1515840) | Cod sursa (job #2080976) | Cod sursa (job #2334233) | 8922938808215294 | Cod sursa (job #1156945)
#include<stdio.h>
#define MOD 666013
using namespace std;
int A[3][3],B[2][3];
FILE *f=fopen("kfib.in","r");
FILE *g=fopen("kfib.out","w");
int k;
void inmultire(int A[3][3],int B[2][3]){
int aux=0,C[2][3];
for(int i=1;i<=1;i++){
for(int j=1;j<=2;j++){
aux=0;
for(int kk=1;kk<=2;kk++)
aux+=B[i][kk]*A[kk][j];
C[i][j]=aux;
}
}
for(int i=1;i<=2;i++)
B[1][i]=C[1][i];
}
void inmultire2(int X[3][3],int B[3][3]){
int aux=0,C[3][3];
for(int i=1;i<=2;i++){
for(int j=1;j<=2;j++){
aux=0;
for(int kk=1;kk<=2;kk++)
aux+=B[i][kk]*X[kk][j];
C[i][j]=aux;
}
}
for(int i=1;i<=2;i++)
for(int j=1;j<=2;j++)
B[i][j]=C[i][j];
}
int main (){
fscanf(f,"%d",&k);
A[1][1]=0,A[1][2]=1,A[2][1]=1,A[2][2]=1;
B[1][1]=0,B[1][2]=1;
for(k;k>0;k/=2){
if(k%2!=0)
inmultire(A,B);
inmultire2(A,A);
}
//for(int i=1;i<=2;i++)
fprintf(g,"%d ",B[1][1]%MOD);
return 0;
}