- 346 名前:132人目の素数さん mailto:sage [2024/04/20(土) 09:06:23.49 ID:HVdq8JLd.net]
- Wolfram言語が話題になっているのに、日本語が通じないとかの罵倒しか書けないクズ人間が東大合格者だと思うひとはその旨をレスしてください。
週末の課題 Wolfram言語でPrimeやPrimeQを使用せずに n 以下の素数を列挙する関数を作れ。 解答例: R言語での prime = function(n){ pmax=floor(sqrt(n)) p=(1:pmax)[-outer(2:pmax,2:pmax)][-1] p1=p[length(p)]+1 f=function(x) all(x%%p!=0) c(p,(p1:n)[sapply(p1:n,f)]) } 実行すると > prime(2024) [1] 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 [17] 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 [33] 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 [49] 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 ... [289] 1879 1889 1901 1907 1913 1931 1933 1949 1951 1973 1979 1987 1993 1997 1999 2003 [305] 2011 2017 このRのコードを Wolfram言語に移植して prime[n_] :=( pmax=Floor[Sqrt[n]]; compo=Union[Flatten[Outer[Times,Range[2,pmax],Range[2,pmax]]]]; p=Drop[Complement[Range[pmax],compo],1]; p1=p[[-1]]+1; f[x_] := !AnyTrue[p,Function[y,Divisible[x,y]]]; Join[p,Select[Range[p1,n],f]]) prime[2024] Wolframが使える方の最適化・高速化を希望します。
|

|