C# 백준 1929번 소수 구하기 stringBuilder활용

2022. 1. 3. 17:00C#/[백준] 기본 수학2

문제

코드 :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _4
{
    internal class Program
    {
        static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();

            string input = Console.ReadLine();
            string[] inputdata = input.Split(' ');
            int M = Convert.ToInt32(inputdata[0]);
            int N = Convert.ToInt32(inputdata[1]);
            List<int> desimalList = new List<int>();
            for (int i = M; i <= N; i++)
            {
                if (i == 1)
                    continue;
                if (i == 2 | i == 3)
                    sb.AppendFormat("{0}\n", i);
                if (i % 2 == 0)
                    continue;
                double sqrt = Math.Truncate(Math.Sqrt(i));
                //제곱근 이하의 수에서 나누어 떨어지지 않으면 소수이므로 제곱근의 버림값을 저장
                for (int j = 2; j <= sqrt; j++)
                {
                    if (i % j == 0)
                    {
                        break;
                    }
                    else
                    {
                        if (j == sqrt)
                        {
                            sb.AppendFormat("{0}\n", i);
                        }
                    }
                }
            }
            
             Console.WriteLine(sb);
            
        }
    }
}

정말 많은 시행 착오를 겪었다.

정답율이 굉장히 낮은 문제인데 대부분 나처럼 시간 초과로 인한 문제라고 생각한다. 그래서 시간을 효율적으로 사용하는 방법에 대해 공부하게 되었는데 소수를 찾을때마다 콘솔로 찍는것보다 stringBuilder를 활용해 문자열을 관리하는것이 효율적임을 알게 되었다.

'C# > [백준] 기본 수학2' 카테고리의 다른 글

C# 백준 9020번 골드바흐의 추측  (0) 2022.01.03
C# 백준 4948번 베트르탕 공준  (0) 2022.01.03
C# 백준 11653번 소인수분해  (0) 2022.01.03
C# 백준 2581번 소수  (0) 2022.01.03
C# 백준 1978번 소수찾기  (0) 2022.01.03