import Foundation
func isPrime(_ n: Int64) -> Bool {
if n < 2 { return false }
if n % 2 == 0 && n != 2 { return false }
var i: Int64 = 3
while i * i <= n {
if n % i == 0 { return false }
i += 2
}
return true
}
// Concatenate two integers
func concat(_ a: Int, _ b: Int) -> Int64 {
let s = "\(a)\(b)"
return Int64(s)!
}
func main() {
let limit = 12 // you can increase this
var primes: [Int] = []
// Generate primes up to limit
for i in 2...limit {
if isPrime(Int64(i)) {
primes.append(i)
}
}
// Check pairs
for i in primes.indices {
for j in primes.indices {
if i == j { continue } // skip same prime if you want
let num = concat(primes[i], primes[j])
if isPrime(num) {
print("\(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
*/