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

1 Answer

0 votes
// Function to check primality
function isPrime(int $n): bool {
    if ($n < 2) return false;
    if ($n % 2 === 0 && $n !== 2) return false;

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

    return true;
}

// Concatenate two integers
function concat(int $a, int $b): int {
    $s = (string)$a . (string)$b;

    return (int)$s;
}

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

    // Generate primes up to limit
    for ($i = 2; $i <= $limit; $i++) {
        if (isPrime($i)) {
            $primes[] = $i;
        }
    }

    // Check pairs
    for ($i = 0; $i < count($primes); $i++) {
        for ($j = 0; $j < count($primes); $j++) {
            if ($i === $j) continue; // skip same prime if you want
            $num = concat($primes[$i], $primes[$j]);
            if (isPrime($num)) {
                echo "{$primes[$i]} + {$primes[$j]} -> {$num} is prime\n";
            }
        }
    }
}

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 Nov 28, 2025 by avibootz
edited Nov 28, 2025 by avibootz
...