我試圖測試歐拉的素性測試的準確性。我寫了一個函數euler(),它接受一個數字並測試所有數字的素數,直到輸入並將它們輸出到包含非引數的控制檯。這是它看起來如何:把一個函數的輸出放入一個數據框或一個列表或一個向量R
euler(10)
[1] 1
[1] 2
[1] 3
[1] "Not prime:" "4"
[1] 5
[1] "Not prime:" "6"
[1] 7
[1] "Not prime:" "8"
[1] "Not prime:" "9"
[1] "Not prime:" "10"
>
我想要把這個輸出並把它放到一個數據框架或一個因素或列表。我試過x<-euler(10)
,但沒有奏效。我只是得到一個NULL向量。這裏是我的歐拉函數的代碼:我試圖定義外的「for」循環,然後使用rbind()數據幀
## Euler's primality test
euler <- function(k) {
for(i in 1:k) {
a <- 2;
if((a^i-a) %% i == 0) {
print(i)
} else{print(c("Not prime:",i))}
}
}
,但我不知道該怎麼做時,有一個if語句。任何幫助讚賞。如果我不清楚,請告訴我,我會進行必要的修改。
該功能執行不力。它應該**返回結果,而不是直接打印。你*可以捕獲這個輸出,但這不是合適的解決方案。適當的解決方案是重寫'euler'來不打印結果(這是忽略該函數也包含語義錯誤:這不*是歐拉的素性測試的適當實現)。 –
@KonradRudolph是的我知道它不是。這裏的重點是讓我學習如何獲取輸出並將其放入數據框中。順便問一下,你是否知道討論歐拉原理性測試的好論文,或者至少與解釋有關?對不起,這些請求。 – Koba
有關說明,[維基百科文章](https://en.wikipedia.org/wiki/Solovay%E2%80%93Strassen_primality_test)其實並不差。 –