示例代码:
bool is_special_prime (int N) {
QHash<int, int> o;
struct A_functor
{
int operator()(unsigned int n) { return n >> __builtin_ctz(n);}
}A;
int k = A(N + 1);
if(k == 1)
return 0;
o[k] = k;
int t = (N - 5) >> 1;
for(int i = 0; i < t; i++) {
k = A(N + k);
if(k == 1 || o.contains(k))
return 0;
o[k] = k;
}
return 1;
}
这种方式是否可以测试大于最新最大素数 2 ^ 57885161 - 1 的数字?