[프로그래머스/C++]Lv.0 - 합성수 찾기

YH J·2023년 4월 19일
0

프로그래머스

목록 보기
48/168

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120846

내 풀이

1과 자기 자신을 제외하고 약수가 하나라도 있으면 조건을 만족한다. i의 시작을 4로해도 될듯

내 코드

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    int answer = 0;
    
    for(int i = 1; i <= n; i++)
    {
        for(int j = 2; j < i; j++)
        {
            if(i % j == 0 && i > 3)
            {
                answer++;
                break;
            }
        }
    }   
    return answer;
}

다른 사람의 풀이

#include <string>
#include <vector>

using namespace std;
bool isComposite(int n)
{
    int cnt = 0;
    for(int i = 1; i<=n; i++)
    {
        if(n % i == 0) 
            cnt++;
        if(cnt >= 3)
            return true;

    }

    return false;
}

int solution(int n) {
    int answer = 0;
    for(int i = 4; i<=n; i++)
    {
        if(isComposite(i))
            answer++;
    }


    return answer;
}

다른 사람의 풀이 해석

수를 체크하는 부분을 함수화하여 꺼내놓았다.

profile
게임 개발자 지망생

0개의 댓글