풀이
"백준 1747, 소수&팰림드롬"와 비슷한 문제다.
입력받은 a~b에 존재하는 팰림드롬 소수를 출력해주면된다.
단, 9,989,899 이후로 1e8까지는 팰림드롬 소수가 없기 때문에 범위에서 제한해주면 된다.
소스코드
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include <math.h>
#define MAX 9989900
bool cNum[MAX] = {0, 1};
int main(){
int sq = sqrt(MAX);
for (int i = 2; i <= sq; i++)
if(!cNum[i])
for (int j = 2*i; j < MAX; j += i)
cNum[j] = true;
int a, b;
scanf("%d %d", &a, &b);
b >= MAX && (b = MAX-1);
for (int i = a; i <= b; i++)
if (!cNum[i]){
char str[8];
sprintf(str, "%d", i);
int len = strlen(str), j;
for (j = 0; j < len/2; j++)
if (str[j] != str[len-j-1]) break;
if (j == len/2) printf("%d\n", i);
}
puts("-1");
}
출처 및 참고자료
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 9020] 골드바흐의 추측 [C] (0) | 2021.08.27 |
---|---|
[백준 1963] 소수 경로 [C] (0) | 2021.08.26 |
[백준 1747] 소수&팰림드롬 [C] (0) | 2021.08.26 |
[백준 1153] 네 개의 소수 [C] (0) | 2021.08.26 |
[백준 6588] 골드바흐의 추측 [C] (0) | 2021.08.26 |