問題タブ [sieve]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - エラトステネスのふるいについて
エラトステネスのふるいに問題があります。だから私は「シャウムのアウトライン」と呼ばれる本からふるいの数学計算を取得しましたが、その本は間違ったコードをプログラムするようにプログラムされていると思います... これは本からのコードです:
ええ、私はコードを使用し、「Sieve()」が認識されないという事実のために若干の変更を加えました。以下は私のコードです:
だから...私は何を間違っていますか?助けてくれてありがとう!
java - Java 8 ストリーム、表と裏を取得
Java 8 では、 Scala のStreamに似たStreamクラスが導入されました。これは、次のようなことを非常に簡潔に行うことができる強力な遅延構造です。
Java 8でこれを行うことができるかどうか疑問に思ったので、次のように書きました。
かなり単純ですが、 とのjava.lang.IllegalStateException: stream has already been operated upon or closed
両方が一度しか実行できない端末操作であるため、生成されます。findFirst()
skip()
Stream
ストリームを 2 回使い切る必要はありません。必要なのは、ストリームの最初の数値と、残りを別のストリームとして (つまり、Scala のStream.head
とに相当する) だけだからStream.tail
です。Stream
これを達成するために使用できるJava 8 のメソッドはありますか?
ありがとう。
java - Java Eratostenes ふるい、特定の天井から最大の素数のみを印刷しますか?
みんな!私は、2 から指定された数値 (ユーザー入力) までのすべての素数を表示する Java アプリを持っています。指定された範囲から最後の数値、つまり最大の数値だけを出力するにはどうすればよいですか? たとえば、ユーザー入力が 12 の場合、コンパイラは 2、3、5、7、11 ではなく、11 のみを出力します。コードは次のとおりです。
別の整数配列を作成してから最後の要素(最後に保存された数値になる)を呼び出すことを考えていましたが、これを行う方法がわかりません。前もって感謝します!
python - エラトステネスのPythonふるいが機能しない
まず第一に、これは宿題です。私は現在、python でエラトステネスのふるいに取り組んでいます。私のプログラムは次のようになります。
プログラムが「素数」を出力すると、次のようになります。
リストに合成数があるのはなぜですか? プログラムが動作するはずです
#プログラムを編集すると、次のようになります。
まだ動作せず、エラーが発生します。「ValueError: list.remove(x): x がリストにありません」
c - 結果を 1 減らすか 1 増やす、除数を数える プログラム - C
問題を解決しています。
問題のリンク:
この問題は、指定された L と R の範囲で、約数が素数 (約数が素数の数) を持つ数を数えることに関するものです。1<=L<=R<=10^12 および LR<=10^6
私のコードでは、10^10 未満の入力に対して正しい出力が得られます。ただし、10^10 より大きい数値の場合、答えは正しい答えよりも 1 小さいか 1 大きくなります。何が問題なのかわかりません。私の解決策:
私のアプローチは、最初に特定の範囲内のすべての素数を数え (素数である 2 の除数があるため)、次に範囲内の完全な正方形の除数をチェックすることです。
素数を数えるには、Segmented Sieve Approach を使用しました。完全平方の除数を数えるために、素因数分解 N = (p)^a * (q)^b * (r)^c を持つ数値 N の場合、N の除数の数は (a+1 ) (b+1) (c+1) [ https://stackoverflow.com/a/110365 ]
誰でもこれで私を助けることができます..
c++ - Sieve Of Atkin は驚くほど遅い
最近、素数にとても興味を持ち、素数を計算するプログラムを作ってみました。数秒で100万個の素数を計算できるSundaramプログラムのふるいを作ることができました。それはかなり速いと思いますが、もっと良くしたかったのです。私はAtkinのふるいを作成しようと続けました。ウィキペディアから疑似コードをコピーした後、20 分で動作する C++ コードをまとめました。
結局のところ、それは疑似コードであるため、完璧ではないことはわかっていました。少なくとも Sundaram Sieve よりも良い時間を期待していましたが、それは大間違いでした。とても遅いです。何度も見直しましたが、大幅な変更は見当たりません。私のコードを見ると、それが非効率的であること、システムコマンドを使用していたこと、あちこちに散らばっていることを知っていますが、これはプロジェクトでも重要なものでもなく、私のためのものです。
python - Pythonで除数の配列の配列を生成する
番号 n の約数を、マスター リストの n 番目の位置に格納されたリストとして取得したいと考えています。たとえば、長さ 11 のふるいでは、sieve[6] == [2,3,6] (1 を無視) が必要です。以下の私のコードは機能せず、不快な方法で私を驚かせます:
それは説明してもらえますか?