小さなカーマイケル アルゴリズムを作成しましたが、561 がカーマイケル数ではないという結果が返されました。ここでアルゴリズムの動作デモを見ることができます: dam.io/mt10
function carmichaelTest(n) {
if(!isPrime(n)){
factors = isPrimeFactorListUnique(n);
if(factors != false){
for(var i=0;i < factors.length;i++){
if( n-1 % factors[i]-1 != 0){
return "Not a carmichael number:"+(n-1)+" % "+(factors[i]-1) +" == " + (n-1 % factors[i]-1 ) + "( != 0)";
}
}
return "Carmichael number!"
}
return "Not carmichael number: factors: "+primeFactorList(n);
}else{
return "Prime so not carmichael number";
}
return "Humm...";
}
そして、それはコースではなく、ただの楽しみです。
EDIT:また、条件として、私も試しました:
if(rapidExpo(factors[i],n-1,n) != 1){
と
if(factors[i]-1 % n-1 != 0){