

이번 문제는 주어진 범위 내에서 소수를 찾아 최소값과 소수들의 합을 출력하는 문제이다.
처음에는 배열에 소수를 저장한 뒤, 해당 데이터를 기반으로 최소값과 합계를 구하는 방식으로 접근하였다.
이전에 풀었던 소수 찾기 문제와 유사한 방식으로 소수를 판별하며 문제를 해결했다.
백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 1978 소수 찾기
이번 문제는 입력된 값들 중에서 소수의 개수를 찾는 문제이다.소수는 1을 제외하고, 1과 자기 자신만을 약수로 가지는 수이므로 단순히 나머지가 0인지 확인하는 것만으로는 판별할 수 없다. 입
devrabbit22.tistory.com
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp3
{
internal class math1
{
static void Main(string[] args)
{
//백준 2581 소수
int M = int.Parse(Console.ReadLine()); // 시작 값
int N = int.Parse(Console.ReadLine()); // 끝 값
int sum = 0; // 소수들의 합
int min = -1; // 소수 중 최솟값
for (int i = M; i <= N; i++)
{
if (i == 1) continue; // 1은 소수가 아니므로 건너뜀
bool isPrime = true;
// 2부터 i-1까지 나누어 떨어지는 수가 있는지 확인
for (int j = 2; j < i; j++)
{
if (i % j == 0) // 나누어 떨어지는 수가 있으면
{
isPrime = false; // 소수 X
break; // 더 이상 검사할 필요 없으므로 종료
}
}
if (isPrime) // 끝까지 나누어 떨어지지 않았다면 소수
{
if (min == -1) // 아직 최솟값이 설정되지 않았다면
min = i; // 현재 소수를 최솟값으로 설정
sum += i; // 소수이므로 합에 추가
}
}
// 소수가 하나도 없는 경우
if (min == -1)
{
Console.WriteLine(-1);
}
else
{
Console.WriteLine(sum); // 소수들의 합 출력
Console.WriteLine(min); // 소수 중 최솟값 출력
}
}
}
}

'코딩 테스트 > 백준' 카테고리의 다른 글
| 백준 - [단계별로 풀어보기 기하 1: 직사각형과 삼각형] 27323 직사각형 (0) | 2026.03.29 |
|---|---|
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 11653 소인수 분해 (0) | 2026.03.29 |
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 1978 소수 찾기 (0) | 2026.03.27 |
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 9506 약수들의 합 (0) | 2026.03.26 |
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 2501 약수 구하기 (0) | 2026.03.26 |