-1

誤っisprime()て整数以外の値 3.2 を渡しました。驚いたことに、受け取ったエラーは次のとおりです。

??? Error using ==> isprime at 18
All entries of X must be nonnegative integers.

これは matlab のエラー出力にある種のバグですか、それともこのステートメントの根本的な根拠はありますか?

前もって感謝します。

編集: 素数が何であるかは理解していますが、どうやらエラー メッセージを読むことができません。私の入力が否定的だと言っていたのに...

4

2 に答える 2

0

素数は、1 より大きい自然数の集合内にあると定義されます。カウントに使用する数字は次のとおり{1, 2, 3, 4, ... }です。これらの数値はすべて負ではありません。すべて整数です。

そうです、ある意味isprimeでエラーをスローするのは正しかったのです。ただし、 が返された可能性もfalseあります。これが、質問した理由である可能性があります。しかし、よく定義されisprime(3.2)ていません。ある意味、腑に落ちない質問です。その場合に返される は、 によって返されるものとまったく同じではありません。コードの作成者はエラーをスローすることを決定しましたが、または別の形式の を使用できた可能性があります (多くの場所で特定の意味を持つため、これにも問題があります)。falseisprime(4)NaN'undefined'NaN

于 2013-06-03T23:20:02.577 に答える