티스토리 뷰

알고리즘(C++)/Programmers 알고리즘

소수 찾기

개발하는꼬물이 2017. 10. 2. 19:27

문제. numberOfPrime 메소드는 정수 n을 매개변수로 입력받습니다.

1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하도록 numberOfPrime 메소드를 만들어 보세요.

소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
(1은 소수가 아닙니다.)

10을 입력받았다면, 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환
5를 입력받았다면, 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환


#include <iostream>
using namespace std;

int numOfPrime(int n)
{
	int answer = 0;

	for (int i = 2; i <= n; i++) 
	{
		int temp = 0;

		for (int j = 1; j < i; j++)  
		{
			if (i % j == 0)
			{
				temp += j;
			}
		}

		if (temp == 1)
		{
			answer++;
		}
	}

		return answer;
}

int main()
{
	int testCase = 10;
	int testAnswer = numOfPrime(testCase);

	cout << testAnswer;
}


'알고리즘(C++) > Programmers 알고리즘' 카테고리의 다른 글

최대공약수와 최소공배수  (0) 2017.10.02
최솟값 만들기  (0) 2017.10.02
콜라츠 추측  (0) 2017.10.02
행렬의 덧셈  (0) 2017.09.28
피보나치 수  (0) 2017.09.28
댓글