>>35-36
> if (round(pow(x-1,n)) mod (pow(x,r)-1 ,n)) { // (*)
> 12.   if ( (x-a)^n != (x^n -a)*(mod x^n - 1,n) ) output COMPOSITE;

そこは
(x-a)^n % (x^r - 1) != (x^n - a) % (x^r - 1)
&& (x-a)^n % n != (x^n - a) % n
って意味じゃないのか?