本月的挑戰回到了基礎——尋找素數。
我對兩個功能感興趣:
- 獲取質數( n , t ) - 在哪裡n是一個正整數並且t可以是兩個值之一。 如果是1獲取質數返回第一個n素數。 如果是2獲取質數將會傳回所有小於或等於的質數n 。 您可以假設的值n不會超過1e8。
- 是質數(向量) - 在哪裡向量是一個n行行、1 列整數值不大於 4e14 的矩陣。 它傳回一個由 1 和 0 組成的矩陣,其中向量[我] = 1 表示我第一個元素向量是質數,0 不是質數。 輸入測試向量將包含 100 到 1000 個元素(但該函數應該能夠接受更大或更小的向量)。
例子:
取得質數(10,1)會回來[2,3,5,7,11,13,17,19,23,29]
取得質數(10,2)會回來[2,3,5,7]
isPrime([-1,0,2,4,5])會回來[0,0,1,0,1]
評分:每個功能4分。 最快的解決方案分別獲得 3 分、2 分和 1 分(每個功能單獨獎勵)。 如果您的解決方案與工作人員提交的最快解決方案一樣快或更快,則 3 分。
提交截止日期是周五。 東部時間 5 月 15 日晚上 11:59。
@大衛·勒伯最好透過電子郵件或社群上的私人訊息向我發送解決方案。 15號之後我會再發一篇文章來討論解決方案。
我們到底如何發布解決方案? 只是作為對這篇文章的評論嗎?
@MathStatChem - 是的,t=1 和 t=2 的限制都是 1e8。 我最終用於測試的值將取決於提交的腳本的運行速度。
對於 getPrimes(),“假設 n 不會超過 1e8”,對於 t=1 和 t=2 來說是嗎?我問這個問題是因為我認為找到前 1 億個素數對 JMP 來說可能有點困難。
感謝唐帶來的有趣挑戰。 我記得幾年前您參加我們的 JMP Day 活動時,我們做了與挑戰 1 類似的事情。
乾杯,蘭登