와이유스토리

[소수] (CHECK) 프로그래머스 k진수에서 소수 개수 구하기 C++ 본문

코딩테스트/구현|기타

[소수] (CHECK) 프로그래머스 k진수에서 소수 개수 구하기 C++

유(YOO) 2023. 1. 21. 12:45

long long 자료형

소수 구할 때 제곱근 사용

#include <string>
#include <vector>
#include <cmath>

using namespace std;

bool isPrime(long long n) {
    if (n<2) return false; // 0과 1 제외
    for(long long i=2; i*i<=n; i++) {
        if (n%i == 0) return false;
    }
    return true;
}

int solution(int n, int k) {
    int answer = 0;
    long long val = 0;
    int cnt = 0;
    while(n>0) {
        if (n%k == 0) {
            if (isPrime(val)) answer++;
            val = 0;
            cnt = 0;
        }
        else {
            val += (n%k*pow(10, cnt));
            cnt++;
        }
        n /= k;
    }
    if (isPrime(val)) answer++;
    
    return answer;
}
Comments