code: def getprimeover(N):
      
      if HAVE_GMP:
          randfunc = random.SystemRandom()
          r = gmpy2.mpz(randfunc.getrandbits(N))
          r = gmpy2.bit_set(r, N - 1)
          return int(gmpy2.next_prime(r))
      elif HAVE_CRYPTO:
          return number.getPrime(N, os.urandom)
      else:
          randfunc = random.SystemRandom()
          n = randfunc.randrange(2**(N-1), 2**N) | 1
          while not is_prime(n):
              n += 2
          return n
docs: Return a random N-bit prime number using the System's best
      Cryptographic random source.
  
      Use GMP if available, otherwise fallback to PyCrypto