void power(int matrix[SIZE][SIZE], int result[SIZE][SIZE], int n, int p) { int i,j; int matrix2[SIZE][SIZE]; if(p==0) for(i=0;i<n;i++)for(j=0;j<n;j++) result[i][j]=i==j; /* result = matrix*/ else{ power(matrix,result,n,p/2); multiply(result,result,matrix2,n,n,n); if(p%2==1) multiply(matrix2,matrix,result,n,n,n); else{ for(i=0;i<n;i++)for(j=0;j<n;j++) result[i][j]=matrix2[i][j]%1000; } } }