সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম এবং একমাত্র যুক্তি হিসাবে একটি সংখ্যা, সংখ্যা নেয়
আমাদের ফাংশন দুটি জিনিস করা উচিত
- প্রথমত, এটি পরীক্ষা করা উচিত যে সংখ্যাটি 10 এর সাথে প্রাইম কিনা, যদি এটি না হয় তবে আমাদের -1 দিতে হবে (একটি সংখ্যা অন্য যেকোনো সংখ্যার সাথে প্রাইম হয় যদি তাদের একমাত্র সাধারণ গুণনীয়কটি 1 হয়)।
- যদি সংখ্যাটি 10 দিয়ে মৌলিক হয়, তাহলে আমাদের দশমিক অংশের দৈর্ঘ্য ফেরত দেওয়া উচিত যা নিজেই পুনরাবৃত্তি করে, যখন সেই সংখ্যাটি 1কে ভাগ করে।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
ইনপুট
const num = 123;
আউটপুট
const output = 5;
আউটপুট ব্যাখ্যা
কারণ 123 সংখ্যাটি নিশ্চিতভাবে 10 সহ প্রাইম
এবং যখন আমরা 1 কে 123 দ্বারা ভাগ করি, আমরা −
পাব1 / 123 = 0.008130081300813…
এটি স্পষ্টভাবে দেখায় যে দশমিক অংশ 00813 অসীমভাবে পুনরাবৃত্তি হচ্ছে এবং এর দৈর্ঘ্য 5, তাই আমাদের আউটপুট 5।
উদাহরণ
নিম্নলিখিত কোড -
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