কম্পিউটার

হর্ষদ নম্বর জাভাস্ক্রিপ্ট খুঁজে বের করা


হর্ষদ সংখ্যা হল সেই সংখ্যাগুলি যেগুলি তাদের অঙ্কের যোগফল দ্বারা ঠিক বিভাজ্য৷ 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() → একটি সংখ্যার সংখ্যা নেয় এবং সংখ্যাটি হর্ষদ কিনা তার উপর নির্ভর করে একটি বুলিয়ান প্রদান করে৷

  • 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. JavaScript-এ একটি অ্যারের মধ্যে তৃতীয় সর্বোচ্চ সংখ্যা খুঁজে বের করা

  2. জাভাস্ক্রিপ্টে লুকাস সংখ্যা অনুক্রমের nম উপাদান খুঁজে বের করা

  3. JavaScript-এ একটি অ্যারেতে প্রথম অ-পরপর নম্বর খোঁজা

  4. জাভাস্ক্রিপ্ট ব্যবহার করে একটি অ্যারে থেকে শুধুমাত্র অনুক্রম সংখ্যা খুঁজে বের করা