Pagini recente » Cod sursa (job #921318) | Cod sursa (job #2754775) | Cod sursa (job #1935670) | Cod sursa (job #2959094) | Cod sursa (job #2489461)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("kfib.in");
ofstream fout ("kfib.out");
#define MOD 666013
int K;
long long Default [2][2] = {{0, 1},
{1, 1}};
long long ans [2][2] = {{0, 1},
{0, 0}};
void Inmultire (long long A [2][2], long long B [2][2]) {
long long C [2][2];
memset (C, 0, sizeof (C));
for (int i = 0; i <= 1; i ++)
for (int j = 0; j <= 1; j ++)
for (int k = 0; k <= 1; k ++)
C [i][j] = (C [i][j] + A [i][k] * B [k][j]) % MOD;
memcpy (A, C, sizeof (C));
}
long long lgput (int n) {
while (n != 0){
if (n & 1)Inmultire (ans, Default);
n >>= 1;
Inmultire (Default, Default);
}
return ans [0][0];
}
int main (){
fin >> K;
fout << lgput(K);
return 0;
}