-1

小さなカーマイケル アルゴリズムを作成しましたが、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){
4

1 に答える 1

1

エラーが見つかった場合、条件のつづりが間違っているだけです。

((n-1) % (factors[i]-1)) != 0
于 2013-06-03T11:35:51.417 に答える