暇つぶし2chat MATH
- 暇つぶし2ch373:132人目の素数さん
24/04/20 21:45:57.23 K224KWOY.net
>>349
2からnまでのリストを作り、そこから、合成数を取り除くという発想は面白い。だけど雑すぎる。
行列は、「○行△列目で値は□」等という情報を持つが、位置情報は必要無いし、値も一度計算してしまえば、忘れて言い。
つまり、行列を保存しておく必要は全くない。これを取り入れれば次になる。
n=2500;a=Range[2,n];Do[a=DeleteCases[a,i*j],{i,2,n},{j,2,n}];a
合成数の発生範囲を調節すると、次になる。
n=2500;a=Range[2,n];Do[a=DeleteCases[a,i*j],{i,2,Sqrt[n]},{j,i,n/i}];a
この方法では、iは、4,6,8,9,10,12,...など、無駄な値も走る。
この無駄をなくしたのがエラトステネスのふるいに相当。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch