整数の因子の数を数えるのはどれくらい難しいですか?


30

整数所与の長さのビットを、どのようにハードそれを出力するの素因数の数(または因子の代わりに数)であり、?NnN

素因数分解を知っていれば、これは簡単です。ただし、素因数の数または一般的な因子の数を知っていた場合、実際の素因数分解をどのように見つけるかは明確ではありません。N

この問題は研究されていますか?素因数分解を見つけることなくこの問題を解決する既知のアルゴリズムはありますか?

この質問は、好奇心と部分的にmath.SE質問によって動機付けられています。


3
素因数の数が多い場合、Nには簡単に見つけられる小さな因子があることを意味します。一方、Nの素因数の数が少ない場合(2など)、2つの素数の積を因数分解する問題に似ており、因子の数が2であることを知ることは役に立たないようです。Omidの平均硬度についてのこの質問をご覧ください。
カヴェー

1
もう1つ、除算は均一なであるため、(素因数だけでなく)すべての因子を数える問題はあり、したがってもあります(そしておそらく削減でについても完全です)。T C 0 P T C 0 A C 0TC0TC0PTC0AC0
カヴェー

1
Kaveh、上記のコメントを回答に展開できれば、それは素晴らしいことです。除算が因子をカウントする方法を正確に理解していませんが、ファクタリングがことも意味し。この誤解は、おそらく私自身の失敗によるものですが、より詳細な答えが役立つでしょう。TC 0 TC 0TC0TC0TC0
デリックストリー

1
知られていた!これはとても簡単です。しかし、議論がどこで途切れるかはわかりません。ps:定義は良くない(と同じ)ので、それが問題です。PTC0P
カヴェー

1
@Artem、#Lはマシンの受け入れパスの数として定義され、マシンは推測のために対数()のスペースのみを使用できます。。私たちは、私が書いた定義、使用している場合は、あまりにも多くのビットを推測している多項式多くの推測と計算を捉えるだろう同様の数数え、というの多項式サイズのをマシンがそれらを受け入れると、が得られます(計算も推測し、実際に受け入れられる計算であることを確認します)。N L N L | y | x A C 0 N P x A C 0PLNLNL|y|バツAC0NPバツAC0P
カヴェー

回答:


16

これは私の答えではありませんが、Terrence TaoがMathOverflowでこの質問に美しい答えを出しまし

ここに彼の答えの最初の数行があります。完全な回答を読むには、リンクをクリックしてください。

整数nの素因数の数をすばやくカウントできた場合、nを完全に素因数分解できる可能性が高いという民話の観察があります。そのため、counting-prime-factors問題は、ファクタリング自体に匹敵する困難があると考えられています。

(これが回答なのかコメントなのかは分かりませんでした。しかし、それは私が書いたものではありませんが、実際は回答です。私に評判を与えます。)


5
私の意見では、このような回答へのポインタは評判ポイントに値する(したがって、コミュニティWikiであってはならない)が、異なる人々は異なる見解を持っていることを理解している。
伊藤剛

しかし、これは正式な削減ではありません
。...-arnab

1
@arnab:いいえ、そうではありません。彼が書いた理由がある「そして、1はなりそうに迅速係数nは完全にできること。」
剛伊藤

1

他の人が述べたように、要因を数えるには、nを因数分解する必要があります。ただし、試行分割は要因の数を制限できます。たとえば、2よりも小さい因子はないため、には最大でn個の因子があることを知っています。Nが2で割り切れるかどうかをテストすることで、Nには最大でlog 3N 因子などがあることもわかります。欠点は、サイズがそれぞれ減少が難しく、徐々にであるということです-あなたはまでテストする必要がN 1 / P除外するためにNよりも多く含むp個の要因を。NnNNlog3(N)N1/pNp

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.