私はcode warsでコード化の問題を抱えていて、this oneに連絡して番号を取り、それが素数であるかどうかを判断する方法を尋ねました。プライムである場合、メソッドはプライムでない場合は "true"を返し、 "false"を返す必要があります。私の素数チェッカーでテスト仕様が失敗する
このメソッドは、すべての導入テストとそれにスローすると考えられる各数値を渡しますが、誤って2つのテストを継続的に実行します。この時点で、テストプロセスについて何かを理解していないのであれば、私は不思議です。
これは私のコードです:
def isPrime(num)
counter=2 #is incremented with every time until loop loops
until counter>999999999999999 do
if num.abs <2
return false
elsif num.abs % counter == 0 && num.abs!=counter
return false
else
return true
end#if
counter+=1
end#
end```
と、これはバックそのコード戦争フィードでは、また、私は、アルゴリズムについてのヘルプはhereページをチェックする私に戻って
isPrime
Should have isPrime defined.
Test Passed
Should return false for numbers less than 2.
Test Passed: Value == false
Test Passed: Value == false
Test Passed: Value == false
Should return false for non-prime numbers.
Test Passed: Value == false
Test Passed: Value == false
Expected: false, instead got: true # THESE ARE THE TESTS THAT FAIL
Expected: false, instead got: true # THESE ARE THE TESTS THAT FAIL
Should return true for prime numbers.
Test Passed: Value == true
Test Passed: Value == true
Test Passed: Value == true
Test Passed: Value == true
Test Passed: Value == true
を送信しています。
ご協力いただきまして誠にありがとうございます。
残念ながら、私はアカウントなしでそのページにアクセスすることはできません。失敗した2つのテストで実際にどのような価値がテストされていますか?一般的な注意点として、 'abs'を使用すると疑わしい(あなたのプログラムは-3が素数だと言うが、負の数は素数ではない(https:// math。stackxchange.com/questions/1002459/do-we-have-negative-prime-numbers))、アルゴリズムはひどく非効率的です。なぜなら、sqrt(num)などにしかならないからです。 –