किसी संख्या को देखकर पता कीजिए कि वह लुह्न फार्मूले के अनुसार मान्य है या नहीं।
लुह्न एल्गोरिदम एक आसान चेकसम फार्मूला है, जिसका उपयोग कई तरह की पहचान संख्याओं की जाँच के लिए किया जाता है, जैसे क्रेडिट कार्ड संख्याएँ और कनाडा की सोशल इंश्योरेंस संख्याएँ।
आपको यह जाँचना है कि दी गई स्ट्रिंग मान्य है या नहीं।
1 या उससे कम लंबाई की स्ट्रिंग मान्य नहीं होती। इनपुट में स्पेस की अनुमति है, लेकिन जाँचने से पहले उन्हें हटा देना चाहिए। बाकी सभी गैर-अंक अक्षरों की अनुमति नहीं है।
4539 3195 0343 6467
लुह्न एल्गोरिदम का पहला कदम यह है कि दाईं ओर से शुरू करके हर दूसरे अंक को दोगुना किया जाए। हम इन अंकों को दोगुना करेंगे
4_3_ 3_9_ 0_4_ 6_6_
अगर किसी अंक को दोगुना करने पर 9 से बड़ी संख्या बने, तो गुणनफल में से 9 घटा दीजिए। दोगुना करने का परिणाम यह है:
8569 6195 0383 3437
फिर सारे अंकों को जोड़िए:
8+5+6+9+6+1+9+5+0+3+8+3+3+4+3+7 = 80
अगर यह जोड़ 10 से पूरी तरह विभाजित हो जाए, तो संख्या मान्य है। यह संख्या मान्य है!
8273 1232 7352 0569
दाईं ओर से शुरू करके दूसरे-दूसरे अंकों को दोगुना कीजिए
7253 2262 5312 0539
अंकों को जोड़िए
7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57
57, 10 से पूरी तरह विभाजित नहीं होता, इसलिए यह संख्या मान्य नहीं है।
निर्देशों को ध्यान से पढ़िए। अगर आप सरसरी नज़र से पढ़ेंगे, तो दिशा से जुड़ी कुछ ज़रूरी बातें छूट सकती हैं।
Exercism पर साइन अप कीजिए और Pharo को 50 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।
हम Luhn के 8 अलग-अलग वर्शन देखते हैं। शुरुआत एक बहुत करीने से लिखी Ruby इम्प्लीमेंटेशन से होती है, फिर कुछ इम्पेरेटिव और फंक्शनल तरीके देखते हैं, और अंत में एक SQLite वर्शन पर पहुँचते हैं, जिसे समझने में Erik और Jeremy को काफी मेहनत लगी!