निकटतम विभाजन संख्याएँ


12

पूर्णांक के विभाजन की संख्या उन तरीकों की संख्या है जो पूर्णांक को सकारात्मक पूर्णांक के योग के रूप में दर्शाया जा सकता है।

उदाहरण के लिए:

5
4 + 1
3 + 2
3 + 1 + 1
2 + 2 + 1
2 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1

संख्या 5 का प्रतिनिधित्व करने के लिए 7 तरीके हैं, इसलिए 7 संख्या 5 के लिए विभाजन संख्या है।

विभाजन संख्या: OEIS: # A000041

दिशा-निर्देश

एक प्रोग्राम लिखें जो इनपुट के रूप में एक सकारात्मक पूर्णांक लेता है, और दो संख्याओं को आउटपुट करता है जो इनपुट संख्या में दो निकटतम विभाजन संख्या उत्पन्न करते हैं।

  • इनपुट 1 धनात्मक पूर्णांक होना चाहिए।
  • यदि इनपुट एक विभाजन संख्या नहीं है, तो आउटपुट 2 अलग-अलग धनात्मक पूर्णांक होना चाहिए जो कि इनपुट संख्या के दो निकटतम विभाजन संख्याएँ उत्पन्न करते हैं। (यदि दो विभाजन संख्याएँ आउटपुट संख्याओं में से एक के लिए समान उम्मीदवार हैं, तो इससे कोई फर्क नहीं पड़ता कि आप किसे चुनते हैं।)
  • इनपुट तो है एक विभाजन संख्या, उत्पादन 1 सकारात्मक पूर्णांक है कि इनपुट संख्या उत्पन्न होना चाहिए।
  • इनपुट और आउटपुट किसी भी उचित प्रारूप में हो सकते हैं।
  • आप मान सकते हैं कि इनपुट 100 मिलियन से अधिक नहीं होगा (उदाहरण के लिए आउटपुट 95 से बड़ा कभी नहीं होगा)।
  • अंतर्निहित संख्याओं की गणना करने के लिए अंतर्निहित कार्यों की अनुमति नहीं है , अन्य मानक खामियों के साथ ।
  • यह , इसलिए कम से कम बाइट्स जीतती हैं।

विभाजन संख्या: OEIS: # A000041

उदाहरण

Input: 66
Output: 11, 12

(विभाजन संख्याएँ जो संख्या ११ और १२ से मेल खाती हैं, ५६ और correspond which हैं, जो कि दो निकटतम विभाजन संख्याएँ हैं। ६६)

Input: 42
Output: 10

(संख्या 42 पहले से ही एक विभाजन संख्या है, इसलिए केवल उस संख्या को आउटपुट करें जो विभाजन संख्या से मेल खाती है।)

Input: 136
Output: 13, 14

(136 के दो निकटतम विभाजन संख्याएँ वास्तव में 136 (जैसे 101 और 135) से कम दोनों हैं, इसलिए आउटपुट 13 और 14 है जो 14 और 15. के विपरीत है।

Input: 1
Output: 0   or   1

(दोनों और 1 इस विशेष मामले में मान्य आउटपुट हैं।)

Input: 2484
Output: 26, 25   or   26, 27

(इन outputs के दोनों मान्य हैं क्योंकि 2484 बराबर घ है मैं 1958 और 3010. से रुख)

Input: 4
Output: 3, 4

(हाँ)


आपने परिभाषित नहीं किया कि विभाजन संख्या क्या है
गर्वित हेकेलर

@proudhaskeller विभाजन संख्या वे संख्याएँ हैं जो OEIS अनुक्रम से जुड़ी हैं। विभाजन संख्या क्या है इसके लिए स्पष्टीकरण 5शीर्ष पर है। (यदि आपको लगता है कि मैं इसे स्पष्ट नहीं करूंगा, तो मैं स्पष्टीकरण जोड़ दूंगा।)
kukac67

1
यह पहले के विभाजन के सवाल का एक ठिकाना होने के बहुत करीब है ।
पीटर टेलर

जवाबों:


2

पायथ , ५३

L?!b<b1sm&d*^_1tdy-b/*dt*3d2r_bhbJo^-QyN2U99<J-2qQyhJ

पालन ​​करने के लिए स्पष्टीकरण और अधिक गोल्फिंग।


4

पायथन 2, 179 बाइट्स

Z=range(1,99)
R=Z+[1]
for i in Z:R[i]=sum(-(-1)**k*(3*k*k-k<=i*2and R[i-k*(3*k-1)/2])for k in range(-i,i+1)if k)
f=lambda n:zip(*sorted((abs(n-R[i]),i)for i in Z))[1][:2-(n in R)]

यूलर के पंचकोणीय प्रमेय से पुनरावर्ती सूत्र का उपयोग करता है

के साथ बुलाओ f(2484)। आउटपुट एक या दो संख्याओं के साथ एक ट्यूपल है।


2

गणितज्ञ, 124 123 बाइट्स

f@n_:=(p=SeriesCoefficient[1/Product[1-x^k,{k,#}],{x,0,#}]&;s=SortBy[Range@95,Abs[n-p@#]&];If[p@s[[1]]==n,s[[1]],s~Take~2])

OEIS पृष्ठ से लिए गए विभाजन संख्याओं के लिए सूत्र । (धोखा दे सकता है या नहीं ... मैं तय नहीं कर सका।)

उपयोग:

In: f[136]

Out: {14, 13}

मैं जीतने के लिए जवाब नहीं दे रहा हूं। और मुझे यकीन है कि इसे और आगे बढ़ाया जा सकता है।

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