Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C+中的威尔逊定理+;,输出不正确?_C++_Proof_Theorem - Fatal编程技术网

C++ C+中的威尔逊定理+;,输出不正确?

C++ C+中的威尔逊定理+;,输出不正确?,c++,proof,theorem,C++,Proof,Theorem,我用威尔逊定理写了一个函数,它应该检查一个整数是否是素数。然而,它输出的结果是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) {

我用威尔逊定理写了一个函数,它应该检查一个整数是否是素数。然而,它输出的结果是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;
}
#包括
使用名称空间std;
长整数计数器=1;
布尔普里姆威尔逊(国际北)
{

对于(inti=1;i您正在检查实现Wilson的错误方法。 例如:

25可被5整除
但是
5不能被25整除

n%(counter+1)
->


您正在检查实现Wilson的错误方法。 例如:

25可被5整除
但是
5不能被25整除

n%(counter+1)
->


请注意,计算的阶乘将很快在<>代码> INT/COM>范围内,或者C++中的任何基本积分类型。这不是5的问题,但它肯定是20的。除了逻辑问题之外,您可能想将“代码>计数器/代码>的初始化移动到函数中,以防您遇到错误。你可以经常调用它。也许整个定义可以被移动。注意你计算的阶乘将很快地增长到超出代码< int >的范围内,或者C++中的任何基本积分类型。这不是5的问题,但它几乎肯定是20。除了逻辑问题,你可能想要。将
计数器
的初始化移到函数中,以防您想多次调用它。也许可以移动整个定义。