Luhn

Luhn

मध्यम

निर्देश

किसी संख्या को देखकर पता कीजिए कि वह लुह्न फार्मूले के अनुसार मान्य है या नहीं।

लुह्न एल्गोरिदम एक आसान चेकसम फार्मूला है, जिसका उपयोग कई तरह की पहचान संख्याओं की जाँच के लिए किया जाता है, जैसे क्रेडिट कार्ड संख्याएँ और कनाडा की सोशल इंश्योरेंस संख्याएँ।

आपको यह जाँचना है कि दी गई स्ट्रिंग मान्य है या नहीं।

संख्या की जाँच कीजिए

1 या उससे कम लंबाई की स्ट्रिंग मान्य नहीं होती। इनपुट में स्पेस की अनुमति है, लेकिन जाँचने से पहले उन्हें हटा देना चाहिए। बाकी सभी गैर-अंक अक्षरों की अनुमति नहीं है।

उदाहरण 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 से पूरी तरह विभाजित हो जाए, तो संख्या मान्य है। यह संख्या मान्य है!

उदाहरण 2: अमान्य क्रेडिट कार्ड संख्या

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 से पूरी तरह विभाजित नहीं होता, इसलिए यह संख्या मान्य नहीं है।

ध्यान दें

निर्देशों को ध्यान से पढ़िए। अगर आप सरसरी नज़र से पढ़ेंगे, तो दिशा से जुड़ी कुछ ज़रूरी बातें छूट सकती हैं।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Pharo Exercism

Luhn शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Pharo को 50 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।

Luhn को गहराई से जानिए!

हम Luhn के 8 अलग-अलग वर्शन देखते हैं। शुरुआत एक बहुत करीने से लिखी Ruby इम्प्लीमेंटेशन से होती है, फिर कुछ इम्पेरेटिव और फंक्शनल तरीके देखते हैं, और अंत में एक SQLite वर्शन पर पहुँचते हैं, जिसे समझने में Erik और Jeremy को काफी मेहनत लगी!