//  ----------------------------------------------------------------------
// 
//  Sample ln3 Program
//  
//  Module:          prime_gen.cc
//  Description:     Generates random prime P of size as supplied by user
//                   such that (P-1)/2 is also prime
           
//  Date:            2001
//  Contributed by:  Rene Peralta
//  
//  ----------------------------------------------------------------------


#include <lnv3/lnv3.h>
#include <nttl/randomPrime.h>                                                 
#include <nttl/isPrime.h>

int
main( int argc, char *argv[ ] )
{
    long p_size;
    ln p,q;

    while( 1 )
    //for (int i = 0 ; i < 1000 ; i++)
    {
        cout << "size (0 to exit): " ;
        //p_size = 30;
	if( ! ( ( cin >> p_size ) && p_size ) ) return 0;
        while (1)
	{
	  RandomPrime( &q, p_size );
	  p = 2*q + 1;
	  if (IsPrime(p)) 
	  { 
            cout << p << endl << endl;
	    break;
          }
	}
    }
    return 0;
}