【发布时间】:2014-05-25 09:35:57
【问题描述】:
我尝试实施 Lehmann 测试,但第一次无法正常工作。我按照大家的描述进行了
- 计算 r = [ a^( (p -1) / 2) ] mod p
- 如果 r 不是 1 或 –1,那么 p 肯定不是素数。
- 如果 r = 1 或 –1,p 不是素数的可能性最多为 50%。
无论我怎么做,它都不会奏效。我什至尝试过硬编码
p = 7; //definitely a prime number
double e = (p - 1 )/2;
int f = (int)pow(3, e) % p;
cout << f <<endl;
而 f 最终为 6
任何帮助将不胜感激
【问题讨论】:
-
正如@dciriello 所说,
6 = -1 (mod 7)。您还必须检查f-p == -1。
标签: c++ rsa number-theory