ধরা যাক নিচের সমস্যাটি:
আমাদের 1 থেকে শুরু করে যেকোনো স্বেচ্ছাসংখ্য num পর্যন্ত একটি সংখ্যা সিকোয়েন্স আছে। আমাদের সিকোয়েন্স থেকে দুটি সংখ্যা (m এবং n) বাছাই করতে হবে যাতে —
sum(1 to num) - (m + n) = m * n
এবং শেষে সব এমন সংখ্যা জোড়ার একটি অ্যারে রিটার্ন করতে হবে।
উদাহরণস্বরূপ —
ইনপুট যদি হয় —
const num = 10;
তাহলে আউটপুট হবে —
const output = [ [7, 6] ];
কারণ sum(1 to 10) = 55
এবং,
55 - (6 + 7) = 6 * 7 = 42
উদাহরণ
কোডটি নিচে দেওয়া হলো —
const num = 10;
const pickNumbers = num => {
const sum = (num) * (num + 1) * (.5);
const results = [];
for (let n = 1; n <= num; n++) {
let first = sum - n;
let second = n + 1;
if (first % second === 0) {
let m = first / second;
if (m < num && m !== n && results.every(group => group[0] + group[1]
!== m + n)){
results.push([m, n]);
}
}
}
return results;
}
console.log(pickNumbers(10));
আউটপুট
কনসোল আউটপুট:
[ [7, 6] ]