#문제
1978번: 소수 찾기
첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.
www.acmicpc.net
#풀이 & 학습한 내용
어떤 수 N이 소수인지 판정하기 위해 2부터 N-1까지의 수에 대해 N이 나누어 떨어지는지 살펴본다. 만약, 하나라도 나누어 떨어지는 수가 있다면 N은 소수가 아니다. 이때, 2부터 루트 N까지의 수에 대해서만 관찰해도 됨을 기억하자.
즉, 아래 소스코드의 15행은 for (int i=2; i*i<=n; i++)로 바꿀 수 있다.
#소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include<iostream>
#include<algorithm>
using namespace std;
int main(void) {
int N;
cin >> N;
int sum = 0;
int num;
while (N--) {
cin >> num;
bool isit = true;
for (int i = 2; i < num; i++) {
if (num%i == 0) {
isit = false;
break;
}
}
if (num == 1)
isit = false;
if (isit == true)
sum++;
}
cout << sum << '\n';
}
|
cs |
github.com/HoYoungChun/BOJ_algorithm/blob/master/Math/BOJ_1978.cpp
HoYoungChun/BOJ_algorithm
Baekjoon Online Judge problem solving by C++. Contribute to HoYoungChun/BOJ_algorithm development by creating an account on GitHub.
github.com
'Algorithm > Math' 카테고리의 다른 글
모듈로 연산 정리 (0) | 2020.11.19 |
---|---|
[C++] 백준 6588번 : 골드바흐의 추측 (S1) (0) | 2020.11.19 |
[C++] 백준 1929번 : 소수 구하기 (S2) (0) | 2020.11.19 |
[C++] 백준 1934번 : 최소공배수 (S5) (0) | 2020.11.19 |
[C++] 백준 2609번 : 최대공약수와 최소공배수 (S5) (0) | 2020.11.19 |