/* */ /* primroot--find least primitive root of p*/ /* */ long primroot(p) long p; { long i, n, pminus1, prod, r; pminus1 = p - 1L; for (r = 2L; r <= pminus1; r++) { prod = 0L; n = 1L; for( i=1L; (i<=pminus1) && (prod!=1L); i++) { prod = (n*r) % p; n = prod; } if (i == p) if (prod == 1L) return(r); else return(0L); } }