我意外地通過了isprime()
一個非整數值3.2;讓我吃驚的是我收到的錯誤是:我明白,喂isprime一個非整數值沒有意義,但
??? Error using ==> isprime at 18
All entries of X must be nonnegative integers.
這是在MATLAB的錯誤輸出某種錯誤的,或者是有這種說法有些根本基礎?
在此先感謝。
編輯: 我明白什麼是質數,但顯然我無法讀取錯誤信息。我雖然說是我的輸入是負數...
我意外地通過了isprime()
一個非整數值3.2;讓我吃驚的是我收到的錯誤是:我明白,喂isprime一個非整數值沒有意義,但
??? Error using ==> isprime at 18
All entries of X must be nonnegative integers.
這是在MATLAB的錯誤輸出某種錯誤的,或者是有這種說法有些根本基礎?
在此先感謝。
編輯: 我明白什麼是質數,但顯然我無法讀取錯誤信息。我雖然說是我的輸入是負數...
3.2
不是一個非負整數,因此你會得到錯誤must be nonnegative integer
。你爲什麼認爲這是一個錯誤?非負整數的示例爲5,20,32,1或4.
如果要在isprime
中使用負數,則首先取絕對值。
x = -5
isprime(abs(x)) % this works
我誤讀了錯誤信息。我認爲這是說我的觀點是消極的。我試圖讓這個問題關閉。 –
素數定義爲大於1的一組natural numbers。這些是我們用於計數的數字:{1, 2, 3, 4, ... }
。所有這些數字都是非負的。所有是整數。
所以是的,在一種方式isprime
是正確的拋出一個錯誤。但是,它也可能返回false
,這可能是您問這個問題的原因。但isprime(3.2)
不是well defined。在某種程度上,這是一個沒有道理的問題。在這種情況下返回的false
與isprime(4)
返回的不完全相同。代碼的作者決定拋出一個錯誤,但可以使用NaN
或另一種形式的'undefined'
(即使這存在問題,因爲NaN
在許多地方具有特定含義)。
我誤讀了錯誤信息。我認爲這是說我的觀點是消極的。我試圖讓這個問題關閉。 –
維基百科:「一個素數(或一個素數)*是大於1 *的自然數,除1和它本身之外沒有任何正數除數。」測試任何非整數或任何小於2的值都是沒有意義的。 – cHao
我誤讀了錯誤信息。我認爲這是說我的觀點是消極的。我試圖讓這個問題關閉。 –
@SteveP。只需按問題下方的「關閉」... – glglgl