Pagini recente » Cod sursa (job #807485) | Cod sursa (job #3249316) | Cod sursa (job #2875118) | Cod sursa (job #3005622) | Cod sursa (job #2243416)
#include<bits/stdc++.h>
using namespace std;
int sol[2][2] = {{1,0},{0,1}}, n;
int a[2][2] = { {0,1}, {1,1} };
const int mod = 666013 ;
void inmultire(int a[2][2] , int b[2][2]){
int c[2][2] = {0};
for(int i = 0 ; i < 2 ; i ++)
for(int j = 0 ; j < 2 ; j ++){
for(int k = 0 ; k < 2 ; k ++)
c[i][j] = (c[i][j] + (1LL * a[i][k] * b[k][j])%mod) %mod ;
}
for(int i = 0 ; i < 2 ; i ++)
for(int j = 0 ; j < 2 ; j ++)
a[i][j] = c[i][j];
}
void power(int n){
while(n > 0 ){
if(n & 1)
inmultire(sol , a);
inmultire(a,a);
n = n >> 1 ;
}
}
int main(){
ifstream in("kfib.in");
ofstream out("kfib.out");
int n ;
in >> n ;
power(n - 1) ;
out << sol [1][1];
}