반응형
https://www.acmicpc.net/problem/2581
[풀이]
○ 두 수 a, b를 입력받는다
○ 소수를 체크하는 함수를 만들어준다
○ 반복문을 통해 소수함수에 a부터b까지 집어넣고 리턴값이 있다면 그 수는 소수이다. sum에 더해준다.
○ 소수 최솟값을 구하기 위해 최솟값 함수를 10001로 초기화해주고 if(min>i) min=i 를 해준다
(i는 증가하기 때문에 맨 처음 최솟값만이 저장됨)
○ 반복문이 끝나고 sum이 0이면 소수가 없었다는 것이니 -1을 출력해준다. 그리고 sum이 -1이라면
최솟값을 출력하지 않는다.
#include<stdio.h>
int sosu(int n) {
if (n <= 1)
return 0;
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0)
return 0;
}
return 1;
}
int main() {
int a, b;
int sum = 0;
int min = 10001;
scanf("%d %d", &a, &b);
for (int i = a; i <= b; i++) {
if (sosu(i)) {
sum += i;
if (min > i)
min = i;
}
}
if (sum == 0)
sum = -1;
printf("%d\n", sum);
if(sum!=-1)
printf("%d",min);
}
반응형
'백준' 카테고리의 다른 글
백준 4948번 [c언어] : 소수 구하기 (0) | 2022.03.20 |
---|---|
백준 11653번[c언어] : 소인수분해 (0) | 2022.03.20 |
백준 1978번[c언어] : 소수 찾기 (0) | 2022.03.20 |
백준 10757번[c언어] : 큰 수 A+B (0) | 2022.03.20 |
백준 2839번[c언어][c++] : 설탕배달 (0) | 2022.03.15 |
댓글