पूर्णांक के कारकों की संख्या को गिनना कितना कठिन है?


30

एक पूर्णांक को देखते हुए N लंबाई के n बिट्स, कितना मुश्किल यह उत्पादन के लिए के प्रधानमंत्री कारकों (या वैकल्पिक रूप से कारकों की संख्या) की संख्या है N ?

यदि हम N का मुख्य गुणनखंड जानते हैंN , तो यह आसान होगा। हालाँकि, यदि हम अभाज्य कारकों की संख्या, या सामान्य कारकों की संख्या जानते थे, तो यह स्पष्ट नहीं है कि हम वास्तविक अभाज्य गुणनखंड कैसे ढूँढेंगे।

क्या इस समस्या का अध्ययन किया गया है? क्या ऐसे ज्ञात एल्गोरिदम हैं जो प्राइम फ़ैक्टर किए बिना इस प्रश्न को हल करते हैं?

यह प्रश्न जिज्ञासा से और आंशिक रूप से एक गणित से प्रेरित है । एक प्रश्न


3
यदि अभाज्य कारकों की संख्या बड़ी है, तो इसका अर्थ यह होगा कि N का एक छोटा कारक है जो आसानी से पाया जा सकता है। दूसरी ओर, यदि N के अभाज्य कारकों की संख्या 2 है, तो 2 मानें, यह दो अपराधों के गुणनफल की समस्या के समान है, और यह जानते हुए कि कारकों की संख्या 2 है, मदद नहीं करती है। उनकी औसत कठोरता के बारे में ओमिद द्वारा यह प्रश्न देखें ।
केवह

1
एक और बात, चूंकि विभाजन समान , सभी कारकों की गणना करने की समस्या (सिर्फ प्रमुख कारक नहीं) # T C 0 में है और इसलिए P में भी है (और संभवतः A के तहत # T C 0 के लिए भी पूर्ण है) सी कटौती)। TC0#TC0P#TC0AC0
केवह

1
Kaveh, यदि आप एक उत्तर में अपनी उपरोक्त टिप्पणी का विस्तार कर सकते हैं, तो यह बहुत अच्छा होगा। मैं बिल्कुल नहीं देखता कि में विभाजन आपको # TC 0 में कारकों को गिनने के लिए कैसे मिलता है, यह भी बताए बिना कि फैक्टरिंग TC 0 में है । मेरी स्वयं की विफलताओं के कारण यह गलतफहमी होने की संभावना है, लेकिन अधिक विस्तृत जवाब मदद करेगा। TC0#TC0TC0
डेरिक स्टोले

1
known AFAIK! and this is too easy. But I don't see where the argument breaks. ps: I guess I know see, my definition of #TC0 is no good (it is the same as #P) and that is the problem.
Kaveh

1
@Artem, #L is defined as the number of accepting paths of an NL machine, and an NL machine can use only logarithmic (in |y|) amount of space for guessing x. We are guessing too many bits if we use the definition I wrote, an AC0 computation with polynomially many guesses would capture NP, similarly counting the number of xs of polynomial size that an AC0 machine accepts on them will give #P (guess the computation also and verify that is really an accepting computation).
Kaveh

जवाबों:


16

This isn't my answer, but Terrence Tao gave a beautiful answer to this question on MathOverflow.

Here are the first few lines of his answer. To read the complete answer, follow the link.

There is a folklore observation that if one was able to quickly count the number of prime factors of an integer n, then one would likely be able to quickly factor n completely. So the counting-prime-factors problem is believed to have comparable difficulty to factoring itself.

(I wasn't sure whether this should be an answer or a comment. But it is really an answer, although it isn't written by me. I've made the answer Community Wiki so that it may be upvoted or accepted without unnecessarily giving me reputation.)


5
In my opinion, a pointer to an answer like this deserves reputation points (so it should not be community wiki), but I understand that different people have different views.
Tsuyoshi Ito

But this is not a formal reduction....
arnab

1
@arnab: No, it is not. That is why he wrote “then one would likely be able to quickly factor n completely.”
Tsuyoshi Ito

1

As others have stated, counting the factors would most likely require factoring n. However, trial division can bound the number of factors. You know, for instance, that N has at most n factors, since no factor can be less than 2. By testing if N is divisible by 2, you also know that N has at most log3(N) factors, etc. The downside is that each reduction in size is progressively harder - you have to test up to N1/p to rule out N containing more than p factors.

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.