доказательство — теорема Вильсона в C ++, неверный вывод?

Я написал функцию, которая должна проверять, является ли целое число простым, используя теорему Вильсона. Однако это выводит, что 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;
}

0

Решение

Вы проверяете неправильный способ реализации Wilson.
Например:

25 делится на 5
но
5 не делится на 25

n%(counter+1)

->

(counter+1)%n
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]