如何在Sage中获得给定位长的随机素数?
例如,为了获得512位素数,我试过了
p = random_prime(2^512)
但根据文件:
命令random_prime(a,True)将返回2和a之间的随机素数
所以我不能使用它,因为我需要一个精确长度的素数.
sage: random_prime? Signature: random_prime(n, proof=None, lbound=2) Docstring: Returns a random prime p between lbound and n (i.e. lbound <= p <= n). The returned prime is chosen uniformly at random from the set of prime numbers less than or equal to n. INPUT: * "n" - an integer >= 2. * "proof" - bool or None (default: None) If False, the function uses a pseudo-primality test, which is much faster for really big numbers but does not provide a proof of primality. If None, uses the global default (see "sage.structure.proof.proof") * "lbound" - an integer >= 2 lower bound for the chosen primes
这样就够了吗?
sage: random_prime(2^512-1,False,2^511) 7484165189517896027318192121767201416039872004910529422703501933303497309177247161202453673508851750059292999942026203470027056226694857512284815420448467 sage: is_prime(7484165189517896027318192121767201416039872004910529422703501933303497309177247161202453673508851750059292999942026203470027056226694857512284815420448467) True