>>325-327
int test12(int a, int n, int r, int *s, int *t, int *u) {
 /* assert: n > 2, r >= 2, n % r > 0 */
 int i,j,m;
 int n1,*tmp;
 s[0] = t[0] = -a % n;
 t[0] = t[1] = 1;
 for (i = 2; i < r; i++) s[i] = t[i] = 0;
 n1 = n / 2;
 while (n1 > 0) {
  mul(u,s,s,r,n); tmp=s; s=u; u=tmp;
  if (n1 & 1) {
   mul(u,s,t,r,n); tmp=t; t=u; u=tmp;
  }
  n1 /= 2;
 }
 m = n % r;
 t[0] = (t[0] - a) % n;
 t[m] = (t[m] - 1) % n;
 for (i = 0; i < r; i++) if (t[i] > 0) return 1;
 return 0;
}