परिचय
पूर्णांकों का एक दृश्य पर विचार च परिभाषित इस प्रकार है:
- f (2) = 2
- यदि n विषम अभाज्य है, तो f (n) = (f (n-1) + f (n + 1)) / 2
- यदि n = p · q समग्र है, तो f (n) = f (p) · f (q)
यह देखना बहुत मुश्किल नहीं है कि हर n and 2 के लिए f (n) = n , और इस तरह से कंप्यूटिंग f बहुत ही रोचक चुनौती नहीं होगी। आइए परिभाषा को एक मोड़ दें: पहले मामले को आधा करें और दूसरे मामले को दोहराएं। हम एक नया अनुक्रम g निम्नानुसार परिभाषित करते हैं:
- g (2) = 1
- यदि n विषम अभाज्य है, तो g (n) = g (n-1) + g (n + 1)
- यदि n = p · q मिश्रित है, तो g (n) = g (p) · g (q)
काम
आपका कार्य एक पूर्णांक n is 2 को इनपुट के रूप में लेना है, और आउटपुट के रूप में g (n) का उत्पादन करना है। आपको पूर्णांक अतिप्रवाह के बारे में चिंता करने की ज़रूरत नहीं है, लेकिन आपको जी (1025) = 81 को सही ढंग से गणना करने में सक्षम होना चाहिए , और आपके एल्गोरिथ्म को सैद्धांतिक रूप से बड़े इनपुट के लिए काम करना चाहिए।
आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। सबसे कम बाइट गिनती जीतती है।
उदाहरण
मैंने उस जी (1025) = 81 से ऊपर का दावा किया है , तो चलो इसे हाथ से गणना करते हैं। 1025 का मुख्य कारक है
1025 = 5*5*41 => g(1025) = g(5)*g(5)*g(41)
चूँकि 41 प्रधान है, हम प्राप्त करते हैं
g(41) = g(40) + g(42)
अगला, हम 40 और 42 के प्रमुख कारकों की गणना करते हैं :
40 = 2*2*2*5 => g(40) = g(2)*g(2)*g(2)*g(5) = g(5)
42 = 2*3*7 => g(42) = g(2)*g(3)*g(7) = g(3)*g(7)
इन छोटे primes के लिए हम प्राप्त करते हैं
g(3) = g(2) + g(4) = 1 + 1 = 2
g(5) = g(4) + g(6) = 1 + 2 = 3
g(7) = g(6) + g(8) = 2 + 1 = 3
इस का मतलब है कि
g(41) = g(40) + g(42) = g(5) + g(3)*g(7) = 3 + 2*3 = 9
तथा
g(1025) = g(5)*g(5)*g(41) = 3*3*9 = 81
परीक्षण के मामलों
यहाँ के मूल्यों हैं जी अप करने के लिए 50 ।
2 -> 1
3 -> 2
4 -> 1
5 -> 3
6 -> 2
7 -> 3
8 -> 1
9 -> 4
10 -> 3
11 -> 5
12 -> 2
13 -> 5
14 -> 3
15 -> 6
16 -> 1
17 -> 5
18 -> 4
19 -> 7
20 -> 3
21 -> 6
22 -> 5
23 -> 7
24 -> 2
25 -> 9
26 -> 5
27 -> 8
28 -> 3
29 -> 9
30 -> 6
31 -> 7
32 -> 1
33 -> 10
34 -> 5
35 -> 9
36 -> 4
37 -> 11
38 -> 7
39 -> 10
40 -> 3
41 -> 9
42 -> 6
43 -> 11
44 -> 5
45 -> 12
46 -> 7
47 -> 9
48 -> 2
49 -> 9
50 -> 9
a(2*n) = a(n)
, और a(2*n+1) = a(n) + a(n+1)
अगर 2*n+1
प्रधान है तो रखती है। कई अन्य विषम संख्याओं के लिए, अनुक्रम शायद संयोग से सहमत हैं।
15, 21, 25, 29, 33, 41
, और एक गुच्छा अधिक है, लेकिन मैं किसी भी पैटर्न को क्यों नहीं पा सकता हूं।)