특정 수를 입력받고, 그 수보다 크면서 팰린드롬인 수를 출력한다.
간단하게 구현했다. 팰린드롬인지 확인하는 함수와, 소수인지 확인하는 함수를 짜서, 입력받은 N 이후 하나씩 늘려가며 확인했다.
팰린드롬인지 확인하는 함수는 해당 숫자를 스트링으로 만들어 뒤집은 다음 뒤집은것과 뒤집지 않은 것이 같은지 확인했다.
소수인지 확인하는 함수는 그냥 간단하게 숫자 n 을 2부터 n/2까지 나눠가며 나눠지는지 확인했다.
이 두 함수를 가지고 숫자를 늘려가며 확인했다. 간단하다.
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
bool check_prime(int num)
{
if (num == 2)
return true;
if (num % 2 == 0 || num < 2)
return false;
int i = 3;
while (i <= num/2)
{
if (num % i == 0)
return false;
i += 2;
}
return true;
}
bool check_pld(int num)
{
std::string tmp = std::to_string(num);
std::reverse(tmp.begin(), tmp.end());
if (tmp == std::to_string(num))
return true;
else
return false;
}
int main()
{
int n;
std::cin >> n;
while (1)
{
if (check_pld(n) && check_prime(n))
break;
n++;
}
std::cout << n;
}
간단하다. 오늘은 참 기다려왔던 결과가 아쉬운 소식으로 왔다. 휴... 원래부터 내 것이 아니였겠거니 하고 다음으로 넘어가자. 이미 과거가 된 일이니 나는 미래를 보며 현재를 산다.
오늘도 평온한 하루가 되길. 슨민.
'짜잘한 기록' 카테고리의 다른 글
백준 1339 단어 수학 (0) | 2021.11.30 |
---|---|
백준 13908 비밀번호 (0) | 2021.11.29 |
백준 1107 리모컨 (0) | 2021.11.25 |
백준 1759 암호 만들기 (0) | 2021.11.23 |
백준 1300 K번째 수 (0) | 2021.11.19 |