define s(p,q,i) { /* start from i, find a quadratic residue "seed" mod p*q */ auto n,z,x,v n = p * q z = i % n if(z <= 1) z = 2 x = (z * z) % n x = (x * x) % n v = 1 if((x%p) == 0) { v=0 ; x = (x+1) % n } if((x%q) == 0) { v=0 ; x = (x+1) % n } if(x <= 1) v=0 while(v == 0) { x = (x * x) % n x = (x * x) % n v = 1 if((x%p) == 0) { v=0 ; x = (x+1) % n } if((x%q) == 0) { v=0 ; x = (x+1) % n } if(x <= 1) { v=0 ; x=2 } } return(x) }