How to find two prime numbers that, when concatenated, form another prime number in TypeScript

1 Answer

0 votes
function isPrime(n: number): boolean {
  if (n < 2) return false;
  if (n % 2 === 0 && n !== 2) return false;

  for (let i = 3; i * i <= n; i += 2) {
    if (n % i === 0) return false;
  }

  return true;
}

// Concatenate two integers
function concat(a: number, b: number): number {
  const s: string = a.toString() + b.toString();

  return parseInt(s, 10);
}

function main(): void {
  const limit: number = 12; // you can increase this
  const primes: number[] = [];

  // Generate primes up to limit
  for (let i = 2; i <= limit; i++) {
    if (isPrime(i)) {
      primes.push(i);
    }
  }

  // Check pairs
  for (let i = 0; i < primes.length; i++) {
    for (let j = 0; j < primes.length; j++) {
      if (i === j) continue; // skip same prime if you want
      const num: number = concat(primes[i], primes[j]);
      if (isPrime(num)) {
        console.log(`${primes[i]} + ${primes[j]} -> ${num} is prime`);
      }
    }
  }
}

main();



/*
run:

"2 + 3 -> 23 is prime" 
"2 + 11 -> 211 is prime" 
"3 + 7 -> 37 is prime" 
"3 + 11 -> 311 is prime" 
"5 + 3 -> 53 is prime" 
"7 + 3 -> 73 is prime" 
"11 + 3 -> 113 is prime" 

*/

 



answered 4 days ago by avibootz
edited 4 days ago by avibootz
...