fun removeDigit(n: Int, index: Int): Int {
val s = n.toString()
val newStr = s.removeRange(index, index + 1)
return newStr.toInt()
}
fun isPrime(n: Int): Boolean {
if (n < 2) return false
if (n % 2 == 0) return n == 2
val limit = kotlin.math.sqrt(n.toDouble()).toInt()
for (i in 3..limit step 2) {
if (n % i == 0) return false
}
return true
}
fun canBecomePrimeByDeletingOneDigit(n: Int): Int? {
val s = n.toString()
for (i in s.indices) {
val candidate = removeDigit(n, i)
if (isPrime(candidate)) {
return candidate
}
}
return null
}
fun main() {
val n = 78919
val result = canBecomePrimeByDeletingOneDigit(n)
if (result != null) {
println("yes number = $result")
} else {
println("no prime can be formed")
}
}
/*
run:
yes number = 7919
*/