private BigInteger procedure_C(BigInteger p,BigInteger q){
  BigInteger pSub1=p.subtract(ONE);
  BigInteger pSub1DivQ=pSub1.divide(q);
  int length=p.bitLength();
  for (; ; ) {
    BigInteger d=new BigInteger(length,init_random);
    if (d.compareTo(ONE) > 0 && d.compareTo(pSub1) < 0) {
      BigInteger a=d.modPow(pSub1DivQ,p);
      if (a.compareTo(ONE) != 0) {
        return a;
      }
    }
  }
}

private BigInteger procedure_C ( BigInteger p , BigInteger q ) { BigInteger pSub1 = p . subtract ( ONE ) ; BigInteger pSub1DivQ = pSub1 . divide ( q ) ; int length = p . bitLength ( ) ; for ( ; ; ) { BigInteger d = new BigInteger ( length , init_random ) ; if ( d . compareTo ( ONE ) > 0 && d . compareTo ( pSub1 ) < 0 ) { BigInteger a = d . modPow ( pSub1DivQ , p ) ; if ( a . compareTo ( ONE ) != 0 ) { return a ; } } } }
procedure c procedure generates the a value from the given p , q , returning the a value .
