पायथन 3 , 78 77 75 70 68 62 बाइट्स
f=lambda n,k=3,m=1,j=0:k<n and-m%k*j*2/k+f(n,k+2,m*k**4,m%k/k)
2 4 बाइट को बंद करने के लिए @xnor को धन्यवाद और 4 और के लिए मार्ग प्रशस्त!
इसे ऑनलाइन आज़माएं!
पृष्ठभूमि
याद रखें कि विल्सन की प्रमेय में कहा गया है कि सभी पूर्णांकों के लिए k> 1 ,
जहाँ - b (mod d) का अर्थ है कि a - b , d से समान रूप से विभाज्य है , अर्थात a और b का d से विभाजित होने पर समान अवशेष है ।
में डबल, अति, उप और सुपर factorials के लिए विल्सन प्रमेयों , लेखकों डबल factorials, जिस पर इस जवाब बनाता है के लिए सामान्यीकरण साबित होते हैं। दोहरा भाज्य एक पूर्णांक के कश्मीर ≥ 0 से परिभाषित किया गया है
उपर्युक्त पत्र के प्रमेय 4 निम्नलिखित बताता है।
चौथी शक्ति के लिए बधाई के दोनों किनारों को ऊपर उठाते हुए, हम इसे घटाते हैं
सभी विषम pr के लिए p । 1 के बाद से !! = 1 , तुल्यता p = 2 के लिए भी रखती है ।
अब, विल्सन के प्रमेय के साथ भी ऐसा करने से पता चलता है
जबसे
यह इस प्रकार है कि
जब भी पी प्राइम होता है।
अब, k को एक विषम, धनात्मक, पूर्णांक पूर्णांक बनाते हैं। परिभाषा के अनुसार, पूर्णांक मौजूद है, b> 1 ऐसा कि k = ab ।
चूंकि k विषम है, इसलिए a और b हैं । इस प्रकार, दोनों क्रम 1, 3,…, k - 2 और में होते हैं
कहाँ | विभाज्यता इंगित करता है।
सभी विषम पूर्णांक k> 1 के लिए योग करना
जहाँ p (k) = 1 यदि k अभाज्य है और p (k) = 0 यदि k संमिश्र है।
यह काम किस प्रकार करता है
जब फ़ंक्शन f को एकल तर्क के साथ कहा जाता है, k , m , और j को 3 , 1 , और 0 के रूप में आरंभ किया जाता है ।
ध्यान दें कि ((- - २) !!) ४ = १ !! 4 = 1 = मी । वास्तव में, समानता m = ((k - 2) !!) 4 हर समय आयोजित होगी। j एक फ्लोट है और हमेशा ((- 4) !!) 4 % (k - 2) / (k - 2) के बराबर होगा ।
जबकि k <n , के सही तर्क का and
मूल्यांकन किया जाएगा। चूंकि j = (((- - 4) !!) 4 % (k - 2) / (k - 2) , जैसा कि पहले पैराग्राफ में सिद्ध होता है, j = 1 / (k - 2) यदि k - 2 प्रधान है और j = 0 यदि नहीं। इसी तरह, चूंकि m% k = (((k - 2) !!) 4 बराबर 1 है यदि k अभाज्य है और 0 यदि नहीं, -m% k = k - 1 यदि k अभाज्य है और -m% k = 0 यदि नहीं है। इसलिए, 2 (k - 1) / (k (2 -)) = (((- 2) + k) / (k (k - 2)) = 1 / k + 1 / (k - 2) का-m%k*j*2/k
मूल्यांकन करता है अगर जोड़ी (k - 2, k)जुड़वाँ प्राइम्स होते हैं और 0 नहीं तो।
उपरोक्त गणना करने के बाद, हम परिणाम को पुनरावर्ती कॉल के वापसी मूल्य में जोड़ते हैं f(n,k+2,m*k**4,m%k/k)
। कश्मीर से वृद्धि हो जाता है 2 तो यह केवल अजीब मानों का उपयोग ‡ † , हम गुणा मीटर से कश्मीर 4 के बाद से mk 4 = ((कश्मीर - 2) !!) 4 कश्मीर 4 = (k !!) 4 , और के वर्तमान मूल्य से पारित m% k / k - जो कि 1 / k के बराबर है यदि "पुराना" k एक अभाज्य है और 0 नहीं तो - फंक्शन कॉल के लिए पैरामीटर j के रूप में ।
अंत में, एक बार k , n के बराबर या उससे अधिक होगा , तो F झूठी लौटेगा और पुनरावृत्ति रुक जाएगी। के रिटर्न मान च (एन) सभी का योग होगा - 1 / k + 1 / (2 ट) इस तरह के (k - 2, ट) एक जुड़वां प्रधानमंत्री जोड़ी और है कश्मीर <n , के रूप में वांछित।
Results पृष्ठभूमि पैराग्राफ से परिणाम केवल अजीब पूर्णांक के लिए पकड़। चूँकि पूर्णांक भी जुड़वां अपराध नहीं हो सकते हैं, हम उन्हें सुरक्षित रूप से छोड़ सकते हैं।