0

我编写了一个函数,该函数应该使用威尔逊定理检查整数是否为素数。然而,它输出 5 不是素数,这显然是。我想问这是为什么?

#include <iostream>
using namespace std;
long int counter = 1;
bool primeWilson(int n)
{
    for(int i=1; i<n; i++)
    {
        counter*=i;
    }
    if(n%(counter+1)!=0)
    {
        return true;
    }
    return false;
}
4

1 回答 1

2

您正在检查实施威尔逊的错误方法。例如:

25 可以被 5 整除,

5 不能被 25 整除

n%(counter+1)

->

(counter+1)%n
于 2018-01-25T08:21:42.380 回答