Baekjoon Online Judge
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
예제 입력 | 예제 출력 |
4 1 3 5 7 |
3 |
풀이
#include <iostream>
using namespace std;
int main() {
int N, M, count = 0;
cin >> N;
// N만큼 숫자 M을 입력받는다.
for (int i = 0; i < N; i++) {
cin >> M;
// 1은 소수가 아니다.
if (M != 1) {
for (int i = 2; i <= M; i++) {
if (i == M) count++;
if (M % i == 0) break; // 소수는 자기자신과 1만으로만
// 나누어 떨어져야한다.
}
}
}
cout << count;
return 0;
}
입력 받은 숫자를 2부터 입력 받은 숫자로 나눠서 소수 여부를 파악했다. for문이 입력한 숫자에 다다르기 전 중간에 나눠 떨어지는 수가 있다면 break를 통해 다음 입력으로 넘어가고, 중간에 break되지 않으면 입력한 숫자는 소수이기에 count에 1을 더했다.
'백준 > C++' 카테고리의 다른 글
[Baekjoon/C++] 소인수분해 11653번 (0) | 2022.04.08 |
---|---|
[Baekjoon/C++] 소수 2581번 (0) | 2022.04.08 |
[Baekjoon/C++] 큰 수 A+B 10757번 (0) | 2022.04.08 |
[Baekjoon/C++] 설탕 배달 2839번 (0) | 2022.04.08 |
[Baekjoon/C++] 부녀회장이 될테야 2775번 (0) | 2022.04.08 |