
이번 문제는 입력된 값들 중에서 소수의 개수를 찾는 문제이다.
소수는 1을 제외하고, 1과 자기 자신만을 약수로 가지는 수이므로 단순히 나머지가 0인지 확인하는 것만으로는 판별할 수 없다. 입력받은 수보다 작은 값들을 이용해 추가적인 약수가 존재하는지 확인해야 한다.
따라서 2부터 해당 수보다 작은 수까지 반복문을 돌며 나누어 떨어지는 수가 있는지 검사하고, 이러한 값이 없다면 소수로 판단할 수 있다.
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)
{
//백준 1978 소수 찾기
int N = int.Parse(Console.ReadLine());
string[] input = Console.ReadLine().Split();
int count = 0;
for (int i = 0; i < input.Length; i++)
{
int inputData = int.Parse(input[i]);
if (inputData == 1) continue; // 1은 소수가 아니므로 건너뛴다.
// 소수 판단 변수
bool isPrime = true;
// 2부터 inputData-1까지 나누어 떨어지는 수가 있는지 확인
for (int j = 2; j < inputData; j++)
{
if (inputData % j == 0)
{
isPrime = false;
break; // 더 이상 검사할 필요 없으므로 반복문 종료
}
}
// 끝까지 나누어 떨어지는 수가 없을 경우
if (isPrime)
count++; // 소수 개수 증가
}
Console.WriteLine(count);
}
}
}

'코딩 테스트 > 백준' 카테고리의 다른 글
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 11653 소인수 분해 (0) | 2026.03.29 |
|---|---|
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 2581 소수 (0) | 2026.03.28 |
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 9506 약수들의 합 (0) | 2026.03.26 |
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 2501 약수 구하기 (0) | 2026.03.26 |
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 5086 배수와 약수 (0) | 2026.03.26 |