본문 바로가기
알고리즘/프로그래머스

[C++] 소인수분해, 7의 개수

by parkkingcar 2023. 5. 18.

 

소인수분해

자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

 

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

// n이 소수인지 판별
bool isPrime(int n) {
	if (n < 2) return false;
	for (int i = 2; i * i <= n; i++) {
		if (n % i == 0) return false;
	}
	return true;
}

vector<int> solution(int n) {
    vector<int> answer;
    for(int i = 2; i < n+1; i++){
        if(n % i == 0){
            if(isPrime(i)){
                answer.push_back(i);
            }
        }
    }
    return answer;
}

 

 

 

소수판단 알고리즘

 

[C++] 소수 찾기 알고리즘

소수는 약수가 1과 자기 자신밖에 없는 수이다. 따라서 소수 판정은 2부터 n-1까지의 숫자로 나눠봄으로써 알 수 있다. 하지만 연산량을 조금 줄이기 위해서 한 가지 수학적인 사실을 이용할 수

doomed-lab.tistory.com

 

 

 

 

 

7의 개수

정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요.

 

#include <string>
#include <vector>

using namespace std;

int solution(vector<int> array) {
    int answer = 0, tmp;
    for(auto i : array){
        while(i){
            tmp = i % 10;
            if(tmp % 7 == 0 && tmp != 0) answer++;
            i /= 10;
        }
    }
    return answer;
}

 

주의할점은 위처럼 숫자 개수를 카운트하는 문제의 경우, 나머지를 이용하는데 0 일 경우 예외처리를 하는것을 기억해야 합니다.

댓글