본문 바로가기

짜잘한 기록

백준 1747 소수&팰린드롬

특정 수를 입력받고, 그 수보다 크면서 팰린드롬인 수를 출력한다.

간단하게 구현했다. 팰린드롬인지 확인하는 함수와, 소수인지 확인하는 함수를 짜서, 입력받은 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