C#

백준 C# 2581 문제 풀이

psb08 2024. 10. 14. 00:21
728x90

문제 링크 : https://www.acmicpc.net/problem/2581

목차

1 설명

 

2 내 코드

 

3 문제 풀이 해석 내용

 

4 실행 결과

 

설명

백준 브론즈 2 문제 입니다.

 

 

내 코드

int startNum = int.Parse(Console.ReadLine());
int endNum = int.Parse(Console.ReadLine());

int sum = 0;
int minNum = -1;

for (int i = startNum; i <= endNum; i++)
{
    if (i == 1)
    {
        continue;
    }
    sum += i;

    for (int k = 2; k <= i; k++)
    {
        if (i % k == 0 && k != i)
        {
            sum -= i;

            break;
        }

        else if (i % k == 0 && k == i)
        {
            if (minNum == -1)
            {
                minNum = i;
            }
            else if (minNum > i)
            {
                minNum = i;
            }
        }
    }
}
if (minNum != -1)
{
    Console.WriteLine(sum);
    Console.WriteLine(minNum);
}
else
{
    Console.WriteLine(minNum);
}

 

문제 풀이 해석 내용

 

입력 처리

int startNum = int.Parse(Console.ReadLine());
int endNum = int.Parse(Console.ReadLine());

사용자로부터 시작 숫자 startNum과 끝 숫자 endNum을 입력받아 정수로 변환합니다.

 

 

변수 초기화

int sum = 0;
int minNum = -1;

sum은 소수의 합을 저장하는 변수입니다.
minNum은 가장 작은 소수를 저장하는 변수로, 초기값을 -1로 설정하여 소수가 발견되지 않은 상태를 나타냅니다.

 

 

범위 내의 숫자 반복

for (int i = startNum; i <= endNum; i++)
{
    if (i == 1)
    {
        continue;
    }
    sum += i;

startNum부터 endNum까지의 숫자를 반복합니다.
i가 1인 경우 소수가 아니므로 continue 문으로 넘어갑니다.
각 숫자를 sum에 더합니다.

 

 

소수 판별

for (int k = 2; k <= i; k++)
{
    if (i % k == 0 && k != i)
    {
        sum -= i;
        break;
    }
    else if (i % k == 0 && k == i)
    {
        if (minNum == -1)
        {
            minNum = i;
        }
        else if (minNum > i)
        {
            minNum = i;
        }
    }
}

내부 루프에서 i가 소수인지 확인합니다.
k는 2부터 i까지 반복하며, i가 k로 나누어 떨어지면 소수 판별을 합니다.
만약 i가 k로 나누어 떨어지면서 k가 i가 아닌 경우, 즉 약수가 존재하면 sum에서 i를 빼고 루프를 종료합니다.
k가 i인 경우, 즉 i가 자기 자신으로 나누어지는 경우, 소수로 판별된 것입니다. 가장 작은 소수를 minNum에 저장합니다.

 

 

결과 출력

if (minNum != -1)
{
    Console.WriteLine(sum);
    Console.WriteLine(minNum);
}
else
{
    Console.WriteLine(minNum);
}

minNum이 -1이 아닌 경우, 즉 소수가 하나라도 발견된 경우, sum과 minNum을 출력합니다.
소수가 발견되지 않은 경우, minNum을 출력합니다 (이 경우 -1이 출력됨).

 

 

실행 결과

실행 결과

 

728x90

'C#' 카테고리의 다른 글

백준 C# 27323 문제 풀이  (0) 2024.10.18
백준 C# 11653 문제 풀이  (0) 2024.10.16
백준 C# 1978 문제 풀이  (0) 2024.10.13
백준 C# 9506 문제 풀이  (0) 2024.10.12
백준 C# 2563 문제 풀이  (0) 2024.10.11