Medium
You are given an integer n.
Let r be the integer formed by reversing the digits of n.
Return the sum of all prime numbers between min(n, r) and max(n, r), inclusive.
Example 1:
Input: n = 13
Output: 132
Explanation:
[13, 31].13 + 17 + 19 + 23 + 29 + 31 = 132.Example 2:
Input: n = 10
Output: 17
Explanation:
[1, 10].2 + 3 + 5 + 7 = 17.Example 3:
Input: n = 8
Output: 0
Explanation:
[8, 8].Constraints:
1 <= n <= 1000import kotlin.math.max
import kotlin.math.min
class Solution {
private fun isPrime(x: Int): Boolean {
if (x <= 1) {
return false
}
if (x == 2) {
return true
}
if (x % 2 == 0) {
return false
}
var i = 3
while (i * i <= x) {
if (x % i == 0) {
return false
}
i += 2
}
return true
}
private fun reverseNum(n: Int): Int {
var n = n
var r = 0
while (n > 0) {
r = r * 10 + (n % 10)
n /= 10
}
return r
}
fun sumOfPrimesInRange(n: Int): Int {
val r = reverseNum(n)
val low = min(n, r)
val high = max(n, r)
var sum = 0
for (i in low..high) {
if (isPrime(i)) {
sum += i
}
}
return sum
}
}