void MODULAR_EXPONENTIATION(int *a,int *b,int *n) { BG d,z; int i; d[0]=1;d[1]=1; for(i=b[0];i>=1;i--) { mulbig(d,d,z); modbig(z,n,d); if(b[i]==1) { mulbig(d,a,z); modbig(z,n,d); } } cpybig(a,d); }
void biggcd(int *x,int *y) { int *z; while(1) { if(y[0]==1 && y[1]==0)return; modbig(x,y); z=y;y=x;x=z; } }
int main(void) { int n, digit; int seq[MAXD]; while (scanf("%d", &n) == 1) { initbig(seq, &digit); while (modbig(seq, digit, n) != 0) plusbig(seq, &digit); printf("%d\n", digit); } return 0; }