समस्या
आज्ञा
n
देना एक प्राकृतिक संख्या है≥ 2
। का सबसे बड़ा भाजक लेंn
- जोn
खुद से अलग है - और इससे घटाएंn
। जब तक आप नहीं मिलते तब तक दोहराएं1
।
प्रश्न
1
किसी दिए गए नंबर तक पहुंचने के लिए कितने कदम हैं n ≥ 2
।
विस्तृत उदाहरण
चलो
n = 30
।
का सबसे बड़ा भाजक:
1. 30 is 15 --> 30 - 15 = 15
2. 15 is 5 --> 15 - 5 = 10
3. 10 is 5 --> 10 - 5 = 5
4. 5 is 1 --> 5 - 1 = 4
5. 4 is 2 --> 4 - 2 = 2
6. 2 is 1 --> 2 - 1 = 1
यह लेता है 6 चरणों तक पहुँचने के लिए 1
।
इनपुट
- इनपुट एक पूर्णांक है
n
, जहांn ≥ 2
। - आपके प्रोग्राम को भाषा के अधिकतम पूर्णांक मान तक इनपुट का समर्थन करना चाहिए।
उत्पादन
- बस चरणों की संख्या, जैसे आउटपुट
6
। - व्हाट्सएप के लीडिंग / ट्रेलिंग या न्यूलाइन्स ठीक हैं।
उदाहरण
f(5) --> 3
f(30) --> 6
f(31) --> 7
f(32) --> 5
f(100) --> 8
f(200) --> 9
f(2016^155) --> 2015
आवश्यकताएँ
- आप
STDIN
फ़ंक्शन पैरामीटर्स से फ़ंक्शन पैरामीटर के रूप में या निकटतम समकक्ष से इनपुट प्राप्त कर सकते हैं । - आप एक कार्यक्रम या एक समारोह लिख सकते हैं। यदि यह एक अनाम फ़ंक्शन है, तो कृपया इसे कैसे लागू करें, इसका एक उदाहरण शामिल करें।
- यह कोड-गोल्फ है इसलिए बाइट्स में सबसे कम जवाब जीतता है।
- मानक खामियों को अस्वीकार कर दिया जाता है।
इस श्रृंखला को OEIS पर भी पाया जा सकता है: A064097
एक अर्ध लघुगणक द्वारा उपपादन द्वारा परिभाषित
a(1) = 0
औरa(p) = 1 + a(p-1)
अगरp
प्रधानमंत्री और हैa(n*m) = a(n) + a(m)
यदिm,n > 1
।
2^32 - 1
। बाकी आप और आपके सिस्टम पर निर्भर है। आशा है, यह वही है जो आपके प्रश्न के साथ था।