코딩 공부/C#

[C# / 백준] 1978번 문제 소수 찾기

통통푸린 2023. 6. 1. 14:26
728x90
반응형
문제

주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.

입력

첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다.

출력

주어진 수들 중 소수의 개수를 출력한다.

예제 입력 및 출력

풀이
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApp1
{
    class Program
    {
        private static void Main(string[] args)
        {
            int num = int.Parse(Console.ReadLine());
            string[] arr = Console.ReadLine().Split();
            int result_cnt = 0;
            for (int i = 0; i<num; i++)
            {
                List<int> list = new List<int>();

                for (int j = 1; j <= Math.Sqrt(int.Parse(arr[i])); j++)
                {
                    if (int.Parse(arr[i]) % j == 0)
                    {
                        list.Add(j);
                    }
                }
                int cnt = list.Count;
                for (int j = 0; j < cnt; j++)
                {
                    list.Add(int.Parse(arr[i]) / list[j]);
                }

                list = list.Distinct().ToList();
                list.Sort();

                if (list.Count == 2)
                    result_cnt++;
            }

            Console.WriteLine(result_cnt);

        }
    }
}
728x90
반응형