쌓고 쌓다

[프로그래머스] 소수 만들기 C++ 풀이 본문

알고리즘/프로그래머스

[프로그래머스] 소수 만들기 C++ 풀이

승민아 2022. 6. 27. 19:06

https://programmers.co.kr/learn/courses/30/lessons/12977?language=cpp 

 

코딩테스트 연습 - 소수 만들기

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때

programmers.co.kr

 

전체 코드

#include <vector>
#include <iostream>
using namespace std;

int solution(vector<int> nums) {
    int answer = 0;
    for(int i=0;i<nums.size();i++)
        for(int j=i+1;j<nums.size();j++)
            for(int k=j+1;k<nums.size();k++)
            {
                bool able = true;
                int sum = nums[i]+nums[j]+nums[k];
                
                for(int z=2;z<sum;z++)
                { 
                    if(sum%z==0){
                        able=false;
                        break;
                    }
                }
                
                if(able)
                    answer++;
                
            }
    

    return answer;
}

 

소수는 1과 자기 자신을 제외한 수로 나눌 수 없는 수입니다.

그래서 2부터 자기 자신보다 작은 수를 이용해, 자기자신을 나눈 나머지가 0이면 그것은 소수가 아닙니다. 

Comments