728x90
https://www.acmicpc.net/problem/2581
문제해석
입력받은 값 M에서부터 N 사이의 수를 순회하며 소수임을 판별해주는 코드를 작성해줍니다.
(2로 나누어 떨어지는 부분 / 나누어 떨어지지 않는 부분)
소수가 되는 처음 부분을 최솟값으로 설정해주고 반복문을 순회하여 저장한 소수를 더해가며 소수의 합을 구해줍니다.
소스코드 & 문제해결
#include <stdio.h>
int main(void) {
int M, N; //변수 설정
scanf("%d\n%d", &M, &N); //두 개의 변수 입력받기
int sum = 0, min = 0; //소수의 합과 최솟값 초기화
//처음 변수부터 두번째 변수까지 순회하며 i가 소수인지 확인
for (int i = M; i <= N; i++) {
for (int j = 2; j < i; j++) { //반복문 변수 j가 2는 고려X 않으며 소수를 확인
//i가 j로 나누어떨어지면 소수가 아니게 됨->탈출
if (i % j == 0) {
break;
}
//i가 소수면 소수의 합을 sum에 저장
if (j == i - 1) {
sum += i;
if (min == 0)
min = i; //저장된 소수의 최솟값이 없으면 저장
}
}
//만약 n1이 2가 포함되면 2는 가장 작은 소수이며 소수 합계에 더해주기
if (i == 2) {
sum += i;
min = i;
}
}
if (min != 0)
printf("%d\n%d", sum, min); //소수의 최솟값이 있다면 반복문에서 저장한 값 출력
else
printf("-1"); //소수의 최솟값이 없다면 -1 출력
}
예제 입출력 결과
728x90
'백준(BaekJoon)' 카테고리의 다른 글
[BaekJoon/C] No.2587 : 대표값2 (0) | 2024.07.21 |
---|---|
[BaekJoon/C] No.11653 : 소인수분해 (0) | 2024.07.17 |
[BaekJoon/C] No.1015 : 수열 정렬 (0) | 2024.07.07 |
[BaekJoon/C] No.1427 : 소트인사이드 (0) | 2024.07.07 |
[BaekJoon/C] No.1085 : 직사각형에서 탈출 (0) | 2024.07.07 |