// Function to check if a number is prime
function isPrime(n: number): boolean {
if (n <= 1) return false;
if (n <= 3) return true;
if (n % 2 === 0 || n % 3 === 0) return false;
const limit: number = Math.sqrt(n);
for (let i: number = 5; i <= limit; i += 6) {
if (n % i === 0 || n % (i + 2) === 0)
return false;
}
return true;
}
// Helper class to return A and B together
interface Pair {
A: number;
B: number;
}
// Function to find the two prime factors A and B
function findAB(N: number): Pair {
const limit: number = Math.sqrt(N);
for (let i: number = 2; i <= limit; i++) {
if (N % i === 0) {
const j: number = N / i;
if (isPrime(i) && isPrime(j)) {
return { A: i, B: j };
}
}
}
return { A: -1, B: -1 }; // No prime factors found
}
function main(): void {
const N: number = 12349;
const result: Pair = findAB(N);
if (result.A !== -1)
console.log("A = " + result.A + ", B = " + result.B);
else
console.log("Not found.");
}
main();
/*
run:
A = 53, B = 233
*/