728x90
728x90
문제
주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.
입력
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
출력
주어진 수들 중 소수의 개수를 출력한다.
예제 입력 1
4
1 3 5 7
예제 출력 1
3
알고리즘 분류
- 수학
- 정수론
- 소수 판정
- 에라토스테네스의 체
문제 출처
https://www.acmicpc.net/problem/1978
문제 해결 방법
- 소수 찾기 알고리즘을 사용하여 간단하게 문제를 해결하였다.
- 소수(Prime Number)란, 약수가 1과 자기 자신인 수를 의미한다.
- 1부터 자기 자신의 수가 나올 때까지 for 문을 돌리면서, 나누어 떨어질 경우 약수의 개수를 1개씩 늘린 후, for 문을 빠져나올 때 약수의 개수가 2개일 경우 소수의 총개수(cnt)를 1씩 증가시킨다.
- 이 과정을 N번 반복한다.
코드
#include <iostream>
using namespace std;
int N, num, prime, cnt;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N;
cnt = 0;
for (int i = 0; i < N; i++) {
cin >> num;
prime = 0;
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
prime++;
}
}
if (prime == 2) {
cnt++;
}
}
cout << cnt << '\n';
return 0;
}
채점 결과
참고
- [단계별로 풀어보기] > [기본 수학 2]
- 실버V
728x90
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ-4948][C++] 베르트랑 공준 (0) | 2022.10.25 |
---|---|
[BOJ-1929][C++] 소수 구하기 (0) | 2022.10.25 |
[BOJ-11653][C++] 소인수분해 (0) | 2022.10.25 |
[BOJ-2581][C++] 소수 (0) | 2022.10.25 |
[BOJ-2830][C++] 설탕 배달 (0) | 2022.10.24 |
[BOJ-2775] 부녀회장이 될테야 (0) | 2022.10.24 |
[BOJ-10250][C++] ACM 호텔 (0) | 2022.10.24 |
[BOJ-2869][C++] 달팽이는 올라가고 싶다 (0) | 2022.10.24 |