Pagini recente » Cod sursa (job #708650) | Cod sursa (job #1312886) | Cod sursa (job #2867767) | Cod sursa (job #1159806) | Cod sursa (job #631627)
Cod sursa(job #631627)
#include <stdio.h>
#include <string.h>
#define MOD 666013
void matrix_mult(int (*A)[2], int (*B)[2])
{
int C[2][2];
memset(C, 0, sizeof(C));
int i, j, k;
for (i=0; i<2; ++i)
for (j=0; j<2; ++j)
for (k=0; k<2; ++k)
C[i][j] += (1ll*A[i][k]*B[k][j])%MOD;
memcpy(A, C, sizeof(C));
}
int main()
{
int n;
int T[2][2] = {{1, 1}, {1, 0}};
int res[2][2] = {{1, 0}, {0, 1}};
scanf("%d", &n);
n -= 1;
while (n) {
if (n%2)
matrix_mult(res, T);
matrix_mult(T, T);
n >>= 1;
}
printf("%d\n", res[0][0]);
return 0;
}