কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে হার্শ্যাড নম্বর (Harshad Number) খুঁজে বের করা

हर्षद संख्याएं वे संख्याएं हैं जो अपने अंकों के योग से बिल्कुल विभाज्य होती हैं। जैसे संख्या 126, यह 1+2+6 = 9 से पूरी तरह विभाज्य है।

  • सभी एक अंक की संख्याएं हर्षद संख्याएं हैं।

  • हर्षद संख्याएं अक्सर लगातार समूहों में मौजूद होती हैं जैसे [1,2,3,4,5,6,7,8,9,10], [110,111,112], [1010, 1011, 1012]।

हमारा काम एक फ़ंक्शन लिखना है जो इनपुट के रूप में एक नंबर लेता है जांचता है कि यह हर्षद संख्या है या नहीं, यदि नहीं तो -1 लौटाता है अन्यथा यह लगातार हर्षद क्लस्टर की लंबाई लौटाता है।

उदाहरण के लिए -

harshadNum(1014) = harshadNum(1015) = harshadNum(1016) = harshadNum(1017) = 4 harshadNum(1) = 10 harshadNum(12) = 1 harshadNum(23) = -1

आइए इस समस्या को दो प्रमुख फ़ंक्शन में विभाजित करें,

  • isHarshad() →  एक नंबर num लेता है और इस आधार पर एक बूलियन लौटाता है कि संख्या हर्षद है या नहीं।

  • harshadNum() → मुख्य फ़ंक्शन जो वास्तविक नंबर लेता है, विभिन्न बिंदुओं पर isHarshad() को कॉल करता है और स्ट्रीक की लंबाई लौटाता है।

isHarshad फ़ंक्शन को कोड करना -

const isHarshad = (num) => {    let sum = 0, temp = num;    while(temp){       sum += temp % 10;       temp = Math.floor(temp/10);    }    return num % sum === 0; }

काफी सरल पुनरावृत्त फ़ंक्शन जो एक बूलियन लौटाता है

अब आइए harshadNum() फ़ंक्शन को कोड करें -

const harshadNum = (number) => {    //if the input is not harshad return -1    if(!isHarshad(number)){       return -1;    }    let streak = 1, prev = number-1, next = number+1;    //check preceding streak    while(isHarshad(prev) && prev > 0){       streak++;       prev--;    }    //check succeeding streak    while(isHarshad(next)){       streak++;       next++;    }    return streak; }; console.log(harshadNum(1014));

उपरोक्त कोड को समझना -

  • जांचें कि इनपुट हर्षद है या नहीं, यदि नहीं तो फ़ंक्शन रोकें और -1 लौटाएं;

  • एक लूप पीछे की ओर चलाएं, एक आगे की ओर जब तक हमें हर्षद संख्याएं मिलती रहें, साथ ही स्ट्रीक को अपडेट करते रहें

  • अंत में स्ट्रीक लौटाएं

निम्नलिखित पूरा कोड है -

उदाहरण

const isHarshad = (num) => {    let sum = 0, temp = num;    while(temp){       sum += temp % 10;       temp = Math.floor(temp/10);    }    return num % sum === 0; } const harshadNum = (number) => {    //if the input is not harshad return -1    if(!isHarshad(number)){       return -1;    }    let streak = 1, prev = number-1, next = number+1;    //check preceding streak    while(isHarshad(prev) && prev > 0){       streak++;       prev--;    }    //check succeeding streak    while(isHarshad(next)){       streak++;       next++;    }    return streak; }; console.log(harshadNum(1014));

आउटपुट

कंसोल में इस कोड का आउटपुट होगा -

4
  1. জাভাস্ক্রিপ্টে অ্যারেতে থার্ড ম্যাক্সিমাম নাম্বার খুঁজে বের করা

  2. জাভাস্ক্রিপ্টে লুকাস সংখ্যা সিকোয়েন্স-এর nth এলিমেন্ট বের করা

  3. জাভাস্ক্রিপ্টে অ্যারেতে প্রথম নন-কনsekutিভ নম্বর খুঁজে বের করা

  4. জাভাস্ক্রিপ্টে সর্টেড অ্যারে থেকে আউট-অফ-অর্ডার এলিমেন্ট খুঁজে বের করা