반응형
https://www.acmicpc.net/problem/2581
2581번: 소수
M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.
www.acmicpc.net
코드
#include <iostream>
using namespace std;
bool Check(int input);
int main()
{
int num, start, end, min = 10001, sum = 0;
cin >> start >> end;
for (int num = start; num <= end; num++)
{
if (!Check(num))
continue;
sum += num;
if (num < min)
min = num;
}
if (sum == 0)
cout << "-1" << endl;
else
cout << sum << "\n" << min;
return 0;
}
bool Check(int input)
{
if (input <= 1)
return false;
if (input == 2)
return true;
for (int i = 2; i < input; i++)
{
if (input % i == 0)
return false;
}
return true;
}
풀이
두 자연수 start, end를 입력하여 start와 end 사이의 자연수 중 소수인 것을 찾아 그 합을 더하고 최솟값을 출력하는 문제이다.
이 전의 소수를 찾는 문제인 1978번에서 사용한 소수 찾기 함수를 사용했다.
소수를 찾는 함수가 false, 즉 소수가 아니라면 continue를 사용해 다음 반복으로 넘어가고 소수라면 sum에 더한 뒤 최솟값인지 확인하여 최솟값이라면 min 변수에 저장하도록 하였다.
최종적으로 sum의 값이 0, 즉 소수가 존재하지 않는다면 -1을 출력하고 소수가 존재한다면 그 합과 최소값을 출력한 뒤 종료한다.
https://wslim8256.tistory.com/174
[백준] [C++] 1978번 소수 찾기
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 문제 코드 #include using n
wslim8256.tistory.com
반응형
'문제 해결 > BaekJoon' 카테고리의 다른 글
[백준] [C++] 2460번 지능형 기차 2 (0) | 2023.01.05 |
---|---|
[백준] [C++] 2908번 상수 (0) | 2023.01.05 |
[백준] [C++] 1978번 소수 찾기 (0) | 2023.01.05 |
[백준] [C++] 2921번 도미노 (0) | 2023.01.03 |
[백준] [C++] 10995번 별 찍기 - 20 (0) | 2023.01.03 |