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"
*/