我试图为Fermat primality test编写代码,但显然失败了。因此,如果我理解得很好: if p
is prime then ((a^p)-a)%p=0
where p%a!=0
。我的代码似乎没问题,因此很可能我误解了基础知识。我在这里想念什么?
private bool IsPrime(int candidate)
{
//checking if candidate = 0 || 1 || 2
int a = candidate + 1; //candidate can't be divisor of candidate+1
if ((Math.Pow(a, candidate) - a) % candidate == 0) return true;
return false;
}