본문 바로가기
Development/Baekjoon

[C#] 1978번: 소수 찾기

by Mobics 2025. 9. 16.

목차


    백준 단계별로 풀어보기

    25.09.16

    9단계: 약수, 배수와 소수 1


    1978번: 소수 찾기

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

     

    문제 풀이

    >> 문제를 풀기 위해 알아야 할 개념

    - 소수란 무엇인가?

    : 소수란 1보다 큰 자연수 중에서 1과 자기 자신만 약수로 가지는 수를 뜻한다.

    --> 즉, 약수의 개수가 2개면 소수이다.

     

    >> 풀이

    1. 수의 개수 N을 입력받아 int값으로 변환한다.
    2. N개의 수를 string 형식의 배열에 나눠서 입력 받고 결과값으로 출력할 변수를 선언한다.
    3. for 반복문을 N번 반복하면서 아래 과정을 실행한다.
      •     i번째 수를 int값으로 변환하고 소수의 개수를 담을 변수를 초기화한다.
      •     for 반복문을 1부터 i번째 수까지 반복하면서, i번째 수를 j로 나눴을 때 나머지가 0이면 j는 i번째 수의 약수이므로 소수의 개수를 1개 늘린다.
      •     약수의 개수를 전부 계산한 다음 약수의 개수가 2개라면 그 수는 소수이므로 결과값을 1 늘린다.
    4. 소수의 개수를 모두 구했으므로 결과값을 출력한다.

     

    정답 코드

    class Backjoon
    {
        static void Main(string[] args)
        {
            int count = int.Parse(Console.ReadLine());
            string[] input = Console.ReadLine().Split();
            int result = 0;
    
            for (int i = 0; i < count; i++)
            {
                int num = int.Parse(input[i]);
                int factors = 0;
    
                for (int j = 1; j <= num; j++)
                {
                    if (num % j == 0)
                        factors++;
                }
    
                if (factors == 2)
                    result++;
            }
            Console.Write(result);
        }
    }

    'Development > Baekjoon' 카테고리의 다른 글

    [C#] 11653번: 소인수분해  (0) 2025.09.18
    [C#] 2581번: 소수  (0) 2025.09.17
    [C#] 9506번: 약수들의 합  (0) 2025.09.15
    [C#] 2501번: 약수 구하기  (0) 2025.09.14
    [C#] 5086번: 배수와 약수  (0) 2025.09.13