기타등등/알고리즘 기록

[C++]뒤집은 소수

CodeJB 2021. 6. 18. 20:30

#include <iostream>

using namespace std;

int reverse(int x){
    int res;
    int tmp;
    //자릿수를 이용해서
    
    while(x != 0){
        tmp = x % 10;
        x = x/10;
        res = (res*10) + tmp;
    }
    cout << "res :" << res;
    return res;
}

bool isPrime(int x){
    
    if(x < 2){
        return false;
    }
    
    for(int i = 2; i*i <= x; i++){ // 루트만큼 돌아도 괜찮음.
        if(x % i == 0){
            return false;
        }
    }
    return true;
}

int main() {
    int N,x,i;
    int rev;
    bool prim;
    
    cin >> N;
    
    for(i = 0; i < N; i++){
        cin >> x;
        rev = reverse(x);
        if(isPrime(rev) == 1){
            cout << rev;
        }
    }
    
    return 0;
}

성찰

  • 자릿수 구하는 공식은 정수형을 다룰 때 참 잘 활용되는 것 같다.
  • 자릿수 구하는 공식을 이용해서 정수형을 뒤집어주었다.
  • 소수 찾기는 간단하지만 루트i까지만 돌려서 최적화 하였다.

'기타등등 > 알고리즘 기록' 카테고리의 다른 글

[C++]층간소음  (0) 2021.06.19
[C++] 아나그램  (0) 2021.06.18
[C++]가장 많이 사용된 자릿수  (0) 2021.06.18
[C++] 숫자의 총 개수(Large)  (0) 2021.06.18
[C++] 자릿수의 합 & 숫자의 총 개수  (0) 2021.06.18