반응형
[ 문제 ]
이 대회의 운영진 중 한 명인 KSA 학생은 시와 19시를 구별할 수 없다. 이는 당연하게도 17과 19가 모두 소수이기 때문일 것이다. 시간을 제대로 구별해서 KSA의 명예를 지키기 위해 정수 을 입력받아서 소수가 아닌 이상의 정수를 아무거나 구해주자.
[ 코드 ]
using System;
int N = int.Parse(Console.ReadLine());
int nonPrime = FindNonPrime(N);
Console.Write(nonPrime);
bool IsPrime(int n)
{
if (n <= 1)
return false;
if (n == 2)
return true;
if (n % 2 == 0)
return false;
int sqrtN = (int)Math.Sqrt(n);
for (int i = 3; i <= sqrtN; i += 2)
{
if (n % i == 0)
return false;
}
return true;
}
int FindNonPrime(int n)
{
while (true)
{
if (!IsPrime(n))
return n;
n++;
}
}
[ 풀이 ]
- 주어진 수가 1보다 작거나 같으면 소수 X
- 2는 짝수 중 유일하게 소수
- 2로 나누었을때 나머지가 0이거나, 제곱근까지 i로 나눴을때 0이면 소수X, 어떤 수로도 나누어 떨어지지 않으면 소수O
문제에서 소수가 아닌 N이상의 값을 출력하라고 했으니 소수가 아니면 그냥 반환하고 소수면 +1하고 반환 해줬다.
[ 실행화면 ]
문제링크: https://www.acmicpc.net/problem/27465
반응형
'Language > C#' 카테고리의 다른 글
[C#] 백준 28014번 첨탑 밀어서 부수기 (0) | 2024.02.06 |
---|---|
[C#] 백준 27159번 노 땡스! (1) | 2024.02.06 |
[C#] 백준 30454번 얼룩말을 찾아라! (3) | 2024.02.05 |
[C#] 백준 30821번 별자리가 될 수 있다면 (이항계수) (0) | 2024.02.05 |
[C#] 백준 29720번 그래서 님 푼 문제 수가? (2) | 2024.02.04 |