Я написал функцию, которая должна проверять, является ли целое число простым, используя теорему Вильсона. Однако это выводит, что 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;
}
Вы проверяете неправильный способ реализации Wilson.
Например:
25 делится на 5
но
5 не делится на 25
n%(counter+1)
->
(counter+1)%n
Других решений пока нет …