백준
백준 소스코드 [C++] 2581 소수
Hani_Levenshtein
2020. 11. 9. 09:00
2581번: 소수
M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.
www.acmicpc.net
백준 소스코드 [C++] 2581 소수
#include <iostream>
#include <algorithm>
#include <queue>
#include <string.h>
#include <limits.h>
#include <vector>
#include <math.h>
#include <stack>
#include <bitset>
#include <string>
typedef long long ll;
using namespace std;
int main() {
ios_base::sync_with_stdio(false), cin.tie(nullptr);
int n, k, count = 0;
cin >> k;
cin >> n;
int *arr=new int[n];
for (int i = 2;i <= n;i++) arr[i] = i;
for (int i = 2;i <= n;i++) {
if (arr[i] == 0) continue;
for (int j = i+i;j <= n;j+=i)arr[j] = 0;
}
int sum = 0,minvalue=INT_MAX;
for (int i = n;k<=i;i--)
if (arr[i] != 0) {
sum += arr[i];
if (minvalue > arr[i])minvalue = arr[i];
}
if (sum == 0) cout << "-1";
else cout << sum << '\n' << minvalue;
return 0;
}