백준
백준 2581번 c#
대왕군
2024. 1. 31. 15:52
using System;
namespace Baekjoon
{
internal class Program
{
static void Main(string[] args)
{
//그냥 콘솔창 예쁘게 꾸미는 코드(심심해서 넣음)
Console.BackgroundColor = ConsoleColor.DarkCyan;
//시작숫자와 끝숫자 저장
int startNum = int.Parse(Console.ReadLine());
int endNum = int.Parse(Console.ReadLine());
//소수의 모든 합과 소수의 최솟값을 나타낼 변수
int sum = 0;
//일단 minNum은 -1로 해둠
int minNum = -1;
//시작값부터 끝값까지 반복함
for (int i = startNum; i <= endNum; i++)
{
//1은 소수가 아니므로 만약 i가 1이라면 이번 반복문 그냥 넘김
if (i == 1)
{
continue;
}
//일단 i가 소수라고 가정하고 sum에 i를 더해줌
sum += i;
//어차피 1로 다 나눠지니까 2부터 시작하여 반복
for (int k = 2; k <= i; k++)
{
//i가 본인 이외의 숫자로 나누어진다면 실행
if (i % k == 0 && k != i)
{
//소수가 아닌 것이 밝혀졌으니 sum에서 다시 i 빼줌
sum -= i;
//반복문 탈출
break;
}
//만약 i가 1과 자기자신으로만 나누어지는 소수라면 실행
else if (i % k == 0 && k == i)
{
//만약 minNum이 초기값 -1을 가지고 있다면 실행
if (minNum == -1)
{
//minNum에 바로 i 대입
minNum = i;
}
//만약 minNum보다 이번 i가 더 작다면 실행
else if (minNum > i)
{
//minNum에 i 대입
minNum = i;
}
}
}
}
//minNum이 -1이 아닌경우(즉 소수가 하나라도 존재했을 때 실행)
if (minNum != -1)
{
//소수들의 합과 소수 최솟값 출력
Console.WriteLine(sum);
Console.WriteLine(minNum);
}
//-1 출력
else
{
Console.WriteLine(minNum);
}
}
}
}