알고리즘 문제풀이
소수&팰린드롬[백준 1747]
wiojfe
2024. 5. 30. 19:39
https://www.acmicpc.net/problem/1747
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
// 소수 판별 함수
bool is_prime(int num) {
if (num < 2) return false;
if (num == 2) return true;
if (num % 2 == 0) return false;
for (int i = 3; i <= sqrt(num); i += 2) {
if (num % i == 0) return false;
}
return true;
}
// 팰린드롬 판별 함수
bool is_palindrome(int num) {
int original = num;
int reversed = 0;
while (num > 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
return original == reversed;
}
int main() {
int N;
scanf("%d", &N);
int i = N;
while (true) {
if (is_prime(i) && is_palindrome(i)) {
printf("%d\n", i);
break;
}
i++;
}
return 0;
}