সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা num প্রথম ও একমাত্র আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটি দুটি কাজ করবে –
- প্রথমে চেক করবে যে সংখ্যাটি ১০-এর সাথে প্রাইম কিনা, যদি না হয় তবে -1 ফেরত দেবে (এক সংখ্যা অন্য সংখ্যার সাথে প্রাইম হলে যদি তাদের একমাত্র সাধারণ ফ্যাক্টর ১ হয়)।
- যদি সংখ্যা ১০-এর সাথে প্রাইম হয়, তবে ১ কে সেই সংখ্যা দিয়ে ভাগ করলে ডেসিমাল অংশের যে অংশ বারবার রিপিট হয় তার দৈর্ঘ্য ফেরত দেবে।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
const num = 123;
আউটপুট
const output = 5;
আউটপুট ব্যাখ্যা
কারণ ১২৩ নিশ্চিতভাবে ১০-এর সাথে প্রাইম।
যদি আমরা ১ কে ১২৩ দিয়ে ভাগ করি, তবে পাওয়া যায় –
1 / 123 = 0.008130081300813…
এটি স্পষ্ট দেখাচ্ছে যে ডেসিমাল অংশ 00813 অনন্তবার রিপিট হচ্ছে এবং এর দৈর্ঘ্য ৫, তাই আউটপুট ৫।
উদাহরণ
নিচে কোডটি দেওয়া হল –
const num = 123;
const findRepeatingPart = (num = 1) => {
if (num % 2 === 0 || num % 5 === 0) {
return -1;
} else {
let res = 10 % num, count = 1;
while (res != 1) {
res = res * 10 % num;
count++;
}
return count;
}
};
console.log(findRepeatingPart(num));
আউটপুট
5