একটি সংখ্যা গ্যাপফুল হয় যদি সেটি কমপক্ষে ৩ অঙ্কের হয় এবং প্রথম ও শেষ অঙ্ক মিলিয়ে বানানো সংখ্যা দিয়ে ভাগ যায়। সবচেয়ে ছোট গ্যাপফুল সংখ্যা হলো ১০০। প্রথম অঙ্ক ১, শেষ অঙ্ক ০, মিলিয়ে ১০ বানায়, যা ১০০-এর গুণনীয়ক। তাই ১০০ গ্যাপফুল।
আমাদের একটি ফাংশন তৈরি করতে হবে যা একটি সংখ্যা n নেবে এবং সবচেয়ে কাছাকাছি গ্যাপফুল সংখ্যা রিটার্ন করবে (নিজসহ)। যদি দুটি গ্যাপফুল সংখ্যা সমান দূরত্বে থাকে, তবে ছোটটি রিটার্ন করবে।
কিছু উদাহরণ −
gapful(25) ➞ 100 gapful(100) ➞ 100 gapful(103) ➞ 105
উদাহরণ
নিচে কোডটি দেওয়া হলো −
const num = 4780; const isGapful = n => { if (n < 100){ return false; } const temp = Array.from(n.toString()); return n % (temp[0] + temp[temp.length - 1]) === 0; } function getClosestGapful(n) { let left = n, right = n; while (!isGapful(right)){ right++; } if (n < 100){ return right; } while (!isGapful(left)){ left++; } return n - left <= right - n ? left : right; }; console.log(getClosestGapful(25)); console.log(getClosestGapful(num));আউটপুট
কনসোলে নিম্নলিখিত আউটপুট দেখা যাবে −
100 4800