問題タブ [prime-factoring]

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.

0 投票する
4 に答える
950 参照

python - Python での大きな計算のメモリ使用量の処理

Python で計算をしようとしていますが、メモリが不足しています。したがって、メモリを解放するためにファイルを読み書きしたいと考えています。非常に大きなリストオブジェクトのようなものが必要なので、ファイル内のオブジェクトごとに行を書き、メモリではなくその行に読み書きすることを考えました。行番号をインデックスとして使用するため、行の順序は重要です。そのため、他の行を移動せずにPythonで行を置き換える方法を考えていました(実際、行を移動しても、期待する場所に戻る限り問題ありません)。

編集

私は友人を助けようとしていますが、それはPythonで私よりも悪いか同じです。このコードは、指定された非素数を割る最大の素数を見つけることになっています。このコードは、100 万のような数字までは機能しますが、死んだ後、数字のリストを作ろうとすると、私の記憶は尽きてしまいます。

別の編集

インデックスごとに異なるファイルを書き込むのはどうですか? たとえば、長い整数のファイル名を持つ何十億ものファイルと、ファイル内の数字だけですか?

0 投票する
2 に答える
806 参照

c++ - 素因数生成C++

これが私がこれまでに持っているものです:

ふるいアプローチで係数を計算してみました。すべての非因子には0が割り当てられます。ArrayCompは、両方が入力の因子であり、素数でもある場合に数値を表示します。

私が抱えている問題は、出力が完全ではなく、プログラムがセグメンテーション違反に遭遇することです。たとえば、10の係数は5と2ですが、100の場合も同じ答えを示します。

編集:私があまり自信がないもう1つのことは、配列のサイズです。このプログラムでは、7ではなく21の素因数として3が表示されますが、サイズを1増やすと、3と5が表示されます(正しくありません)。

0 投票する
3 に答える
3111 参照

java - 273042282802155991 を含む 100 桁以上の素数を見つける

私は Java の初心者で、クラスの課題の 1 つは、273042282802155991 を含む 100 桁以上の素数を見つけることです。

私はこれまでのところこれを持っていますが、コンパイルして実行すると、連続ループになっているようです。

何か悪いことをしたかどうかはわかりません。

0 投票する
1 に答える
2294 参照

math - 範囲内の整数の約数の総数を効率的に計算する

範囲が[1、2 Million]の場合、この範囲の数値ごとに、各整数の除数の数を生成して配列に格納する必要があります。

したがって、x = p1 ^(a1)* p2 ^ a2 * p3 ^ a3の場合、p1、p2、p3は素数であり、xの約数の総数は(p1 + 1)(p2 + 1)(p3 + 1)。2000未満のすべての素数を生成し、範囲内の整数ごとに、試行除算を行って各素因数の累乗を取得し、上記の式を使用して除数の数を計算し、配列に格納しました。ただし、これを行うには非常に時間がかかり、指定された範囲内のすべての数値の除算器の数を生成するのに約5秒かかります。

この合計を他の効率的な方法で行うことはできますか?各数値を因数分解せずに行うことができますか?

以下は私が現在使用しているコードです。

0 投票する
8 に答える
2608 参照

algorithm - N以上の最小の正規数を見つける

規則的な数は、60 の累乗を均等に分割する数です。例として、60 2 = 3600 = 48 × 75 であるため、48 と 75 は両方とも 60 のべき乗の約数です。したがって、これらも規則的な数です。

これは、次の 2 の累乗への切り上げの拡張です。

大きな素因数を含む可能性のある整数値Nがあり、小さな素因数 (2、3、および 5) のみで構成される数値に切り上げたい

例:

  • f(18) == 18 == 21 * 32
  • f(19) == 20 == 22 * 51
  • f(257) == 270 == 21 * 33 * 51

この要件を満たす最小の数を見つける効率的な方法は何でしょうか?

関連する値は大きい可能性があるため、1 から始まるすべての通常の数値を列挙したり、すべての可能な値の配列を維持したりすることは避けたいと思います。

0 投票する
2 に答える
806 参照

c - C で 12 桁の数の素因数を計算できません

プロジェクト Eular ページで例を実行して、C コードについてもっと多くのことを学ぼうとしています : http://projecteuler.net/problemsコード:

このコードは、例にある番号 13195 に対して機能しますが、より大きな番号を試してみると問題が発生し、何が問題なのかわかりません。

多数の出力 600851475143: 素数: 3 素数: 29 素数: 5108231 など。いずれにせよ、数値は 3 で割り切れないため、これは正しくありません。

何がうまくいかないのか分からないので、どんな助けも素晴らしいでしょう

0 投票する
1 に答える
812 参照

python - Python 半素因数分解方程式ソルバーの問題

私は農家/初心者の数論研究者です。私はたまたま数年前に、素数の数を 300 のフィボナッチ数列の演算に関連付ける、素数の分布に現れたパターンを発見しました。いつもペンと紙を使ってきた私は、自分のメソッドをコンピューター コードに変換することになると途方にくれました (そのため、自分のコードを Perl で実装するためにプログラマーを雇いました)。そのコードは機能しましたが、今必要なプロセスではありませんでした。プログラマーのコミュニティに、この (Python) コードを機能させるための最良のアプローチは何だと思うか尋ねたいと思います。また、研究者として、私は人々がこのコードを自分の使用のために流用することにあまり関心がありません。

Perl プログラムによって生成された結果は、AT&T Online Encyclopedia of Integer Sequences で公開されました。https://oeis.org/search?q=helkenberg&language=english&go=検索

以下のプログラムは私の最近の取り組みですが、私の人生では、コードの特定の部分を機能させる方法を理解することはできません.

たとえば (以下のより大きなプログラムから)、

私はコーディングの方法を独学していますが、これを実装する方法を一生理解することはできません!!!

最後に、(z 項の) これらの値を使用して、次の形式の方程式を解く必要があります。

ここで、z 項は 29 と 73 の両方に使用されます (例として)

これが私がこれまでに持っているものです。

0 投票する
3 に答える
2640 参照

c - アルゴリズムの最適化 (素因数分解)

始める前に言っておきますが、これは宿題ではなく、単純で古くて楽しいものです。

今、私はこの質問1/x + 1/y = 1/nに答えることができるアルゴリズムを考え出そうとしています! .

上記のリンクからわかるように、著者は実際の答えではなくヒントだけを求めているので、私も同じことをお願いしたいと思います.

答えの1つが示唆するように (x - n!)(y - n!) = (n!)^2 まで式を単純化し、その時までに (x,y) ペアの組み合わせの数を理解しましたn!^2 の約数と同じです (ここで間違っていたら訂正してください)。

したがって、受け入れられた回答で示唆されているように、N!^2 を構成する各素数のすべての要素の乗算を取得しようとしています。

試行除算を使用して N!^2 を因数分解し、エラトステネスの篩を使用して sqrt(N!^2) までのすべての素数を取得するC のコードを考え出しました。

問題はメモリです。N = 15 で試してみましたが、私の Mac (Quad Core 6GB のメモリ) はほとんど死んでしまいました。問題はメモリでした。だから私はいくつかのprintfを追加し、N = 11で試しました:

リストは、N!^2 のすべての素因数です (もちろん、1 と N!^2 以外に)。

メモリ消費と可能な最適化を最小限に抑える方法についてのヒントが欲しいです。

以下のコードは簡単な実験だったので、最適化できると確信しています。

編集:

例として、初期方程式のすべての可能な正の整数解を得るための計算を示します。

3!^2 = 36 = (3^2*2^2*1^0)

したがって、ディオファントス方程式には (1+2)(1+2)(1+0)=9 の可能な正の整数解があります。負の整数を数える場合は 2 倍になります。確かにWolframAlphaを使用しています。

編集2:

「階乗とは何か」を見つけたばかりだと思います。次の非常に興味深い出力が得られます。

ありがとう

0 投票する
5 に答える
2256 参照

recursion - 素因数を使用した Clojure 末尾再帰

私は自分自身で clojure を学ぼうとしており、そうするために Prime Factors Kata と TDD の原則を使用しています。

次のような一連の Midje テストを介して:

次の関数を作成できました。

これは、次のエッジケーステストを投げるまではうまく機能します。

スタック オーバーフロー エラーが発生します。これを適切な再帰ループに変える必要があることはわかっていますが、私が目にするすべての例は単純すぎて、焦点としてカウンターまたは数値変数のみを指しているようです。これを再帰的にするにはどうすればよいですか?

ありがとう!