반응형
문제 : www.acmicpc.net/problem/2581
이전 문제와 거의 똑같은 문제다.
이전 문제: 2020/12/25 - [프로그래밍/문제 풀이] - [문제풀이] 백준 1929번 - 소수찾기(2) {시간초과이슈}
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
29
30
31
32
33
34
35
|
#include<stdio.h>
int main() {
int m, n;
scanf_s("%d %d", &m, &n);
bool* a = new bool[n + 1];
//a[i]는 i가 소수인지 아닌지 알려준다.
//a[i]가 true이면 i가 소수이고, false면 아니다.
for (int i = 2; i < n + 1; i++)
a[i] = true; //일단 모두 true로 초기화한다.
for (int i = 2; i < n + 1; i++) {
if (a[i]) { //만약 i가 소수라면
for (int k = i * 2; k < n + 1; k += i) {
a[k] = false; //i의 배수는 모두 소수가 아니므로 false로 바꾼다.
}
}
}
int sum = 0, min;
for (int i = m; i < n + 1; i++) {
if (a[i]) { //만약 i가 소수라면
if (sum == 0)
min = i;
sum += i;
}
}
if (sum == 0)
printf("-1");
else
printf("%d\n%d", sum, min);
}
cs |
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[프로그래머스] 전화번호 목록 (정렬보다는 해시를) (0) | 2022.03.07 |
---|---|
[프로그래머스] 완주하지 못한 선수 (0) | 2022.03.06 |
[백준] 1929 - 소수찾기(2) {시간초과이슈} (0) | 2020.12.25 |
[백준] 1978 - 소수 찾기 (0) | 2020.12.24 |
[백준] 1011 - 나를 알파 센타우리로 보내줘 (0) | 2020.12.24 |