একটি সংখ্যার সব ইউনিক প্রাইম ফ্যাক্টর বের করে অ্যারে আকারে রিটার্ন করা।
উদাহরণ
105 = 3 × 5 × 7 Prime factors: [3, 5, 7]
সমাধান
const isPrime = (n) => {
if (n < 2) return false;
if (n === 2) return true;
if (n % 2 === 0) return false;
for (let i = 3; i <= Math.sqrt(n); i += 2) {
if (n % i === 0) return false;
}
return true;
};
const findPrimeFactors = (num) => {
const factors = [];
let n = Math.abs(num);
// ২ হ্যান্ডল
if (n % 2 === 0) {
factors.push(2);
while (n % 2 === 0) n /= 2;
}
// বিজোড় ফ্যাক্টর
for (let i = 3; i <= Math.sqrt(n); i += 2) {
if (n % i === 0) {
if (isPrime(i)) factors.push(i);
while (n % i === 0) n /= i;
}
}
// বাকি প্রাইম
if (n > 1) factors.push(n);
return factors;
};
// অপ্টিমাইজড (প্রাইম চেক ছাড়া)
const primeFactorsFast = (num) => {
const factors = [];
let n = Math.abs(num);
for (let i = 2; i * i <= n; i++) {
if (n % i === 0) {
factors.push(i);
while (n % i === 0) n /= i;
}
}
if (n > 1) factors.push(n);
return factors;
};
// টেস্ট
console.log(findPrimeFactors(105)); // [3, 5, 7]
console.log(primeFactorsFast(105)); // [3, 5, 7]
console.log(primeFactorsFast(18)); // [2, 3]
console.log(primeFactorsFast(100)); // [2, 5]
প্রাইম ফ্যাক্টরাইজেশন (মাল্টিপ্লিসিটি সহ)
const primeFactorization = (num) => {
const factors = [];
let n = Math.abs(num);
for (let i = 2; i * i <= n; i++) {
while (n % i === 0) {
factors.push(i);
n /= i;
}
}
if (n > 1) factors.push(n);
return factors;
};
console.log(primeFactorization(105)); // [3, 5, 7]
console.log(primeFactorization(18)); // [2, 3, 3]
console.log(primeFactorization(100)); // [2, 2, 5, 5]
উৎপাদন
[3, 5, 7]