Pagini recente » Cod sursa (job #1608291) | Cod sursa (job #2267172) | Cod sursa (job #2223685) | Cod sursa (job #2070262) | Cod sursa (job #2442400)
#include <iostream>
#include <fstream>
using namespace std;
void mult1(int A[2][2], int B[2][2]) {
int i, j, k;
int C[2][2];
for (i = 0; i < 2; i++){
for (j = 0; j < 2; j++){
C[i][j] = 0;
for (k = 0; k < 2; k++) {
C[i][j] = (C[i][j] + A[i][k] * B[k][j])%666013;}}}
for(int i = 0; i < 2; i++){
for(int j = 0; j < 2; j++){
A[i][j] = C[i][j];
}
}
}
void equal(int a[1][2], int b[1][2]){
for(int i = 0; i < 1;i++){
for(int j = 0; j < 2; j++){
a[i][j] = b[i][j];
}
}
}
int main(){
ifstream cin("kfib.in");
ofstream cout("kfib.out");
int Z[2][2]={{0, 1},
{1, 1}};
int A[1][2]={{1,1}};
int k;
cin >> k;
int N[2][2]={{1, 0},{0, 1}};
int ok = 1;
while(k){
if(k%2==1){
mult1(N, Z);
}
k = k/2;
mult1(Z, Z);
}
cout << N[0][1]<<'\n';
return 0;
}