반응형
<코드>
#include<iostream>
#include<algorithm>
using namespace std;
int check[10001]; // 0: 초기상태, 1: 소수, 2: 소수X
int main()
{
int N, M;
int ans = 0;
int mini = 10000;
for (int i = 2; i <= 10000; i++)
{
if (check[i] == 2) continue;
else check[i] = 1;
for (int j = i + i; j <= 10000; j += i)
{
check[j] = 2;
}
}
cin >> N >> M;
for (int i = N; i <= M; i++)
{
if (check[i] == 1) {
mini = min(mini, i);
ans += i;
}
}
if (ans == 0) {
cout << -1;
}
else {
cout << ans << '\n';
cout << mini << '\n';
}
}
풀이 방법
에라토스테네스의 체 알고리즘으로 위와같이 소수를 빠르게 구할 수 있다.
https://www.acmicpc.net/problem/2581
반응형
'🧩PS > 🥈Nomal' 카테고리의 다른 글
[JAVA] 백준 15552번 - 빠른 A+B (0) | 2021.09.14 |
---|---|
[C/C++] 백준 18870번 - 좌표 압축 (0) | 2021.07.24 |
[C/C++] 백준 19598번 - 최소 회의실 개수 (0) | 2021.04.10 |
[C/C++] 백준 5525번 - IOIOI (0) | 2021.04.06 |
[C/C++] 백준 4358번 - 생태학 (0) | 2021.04.06 |