यूक्लिडियन एल्गोरिथ्म दो सकारात्मक पूर्णांकों के सबसे बड़े सामान्य भाजक (GCD) की गणना के लिए एक व्यापक रूप से ज्ञात एल्गोरिथम है।
एल्गोरिथ्म
इस चुनौती के उद्देश्य के लिए, एल्गोरिथ्म को नीचे वर्णित किया गया है:
एक निश्चित चरित्र के आसन्न लाइनों के रूप में दो इनपुट प्रदर्शित करें
जैसे3,4
कि आसन्न लाइनों द्वारा एक इनपुट का प्रतिनिधित्व किया जा सकता है000
और0000
पहले
length(short_line)
अक्षर को लंबी रेखा में दूसरे वर्ण में बदल दें, मान लें कि-
यह अब जैसा दिखता है000
और है---0
length(short_line)
लंबी लाइन में पहले वर्णों को हटा दें ।
अब000
,0
दोहराएँ चरण 2 और 3 दो जब तक प्रत्येक यात्रा के बाद छोटे और लंबे समय तक लाइनों का उपयोग कर, समान लंबाई है, उदाहरण के लिए
000
,0
-00
,0
00
,0
-0
,0
0
,0
- आप चुन सकते हैं कि यहां रुकना है या चलना जारी रखना है और लाइनों में से एक को खाली रेखा में बदलना है।
इन चरणों में से प्रत्येक को 0.3 और 1.5 के बीच के अंतराल से अलग किया जाना चाहिए।
चुनौती
एक प्रोग्राम लिखें जो दो प्राकृतिक संख्याओं को इनपुट के रूप में दिया गया है, एक आउटपुट बनाता है जो ऊपर दिए गए एल्गोरिदम के आउटपुट के समान दिखता है। आप उपयोग कर सकते हैं अन्य गैर-सफ़ेद से प्रिंट योग्य ASCII वर्ण 0
और-
, लेकिन अनुरूप होना चाहिए और केवल दो अक्षरों का प्रयोग। आप वैकल्पिक एल्गोरिदम का उपयोग भी कर सकते हैं, जो आउटपुट प्रदान करता है, जिसमें समय भी शामिल है, ठीक वैसा ही है जैसा कि ऊपर दिए गए एल्गोरिदम द्वारा निर्मित किया जाएगा।
उदाहरण
यह इनपुट के साथ एक उदाहरण है 24,35
, जो कॉपीराइट हैं इसलिए उनका जीसीडी 1 है।
यह इनपुट के साथ एक उदाहरण है 16,42
, जिसमें जीसीडी 2 है।
नियम
- यह एक कोड-गोल्फ है , इसलिए सबसे छोटा बाइट्स जीतता है
- मानक खामियां लागू होती हैं
- आप इनपुट को सकारात्मक दशमलव पूर्णांक मान सकते हैं
स्पष्टीकरण
- वे पंक्तियाँ जो संख्याओं का प्रतिनिधित्व करती हैं, उन्हें अपने मूल क्रम में रहने की आवश्यकता होती है, अर्थात् पहले प्रदर्शित "फ्रेम" की पहली और दूसरी पंक्तियों को क्रमशः बाद की सभी और दूसरी पंक्तियों में होना चाहिए।
- एल्गोरिथ्म समाप्त होने के बाद, कोई भी अतिरिक्त दृश्यमान इकाई नहीं दिखाई देनी चाहिए। हालांकि, इसका मतलब यह भी है कि लाइनों को खाली करना ठीक है, यदि आप सुनिश्चित करते हैं कि अंतिम "फ्रेम" कम से कम उसी समय के लिए प्रदर्शित किया जाता है जैसा कि खाली करने से पहले अन्य सभी फ़्रेमों ने किया था।
:-)