SMALL

https://www.acmicpc.net/problem/9020

 

9020번: 골드바흐의 추측

1보다 큰 자연수 중에서  1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아

www.acmicpc.net


  • 문제


  • 문제풀이

기본적으로 에라토스테네스의 체를 활용하여 소수를 분리해놓고 입력받은 수 중위수부터 2번째까지 소수를 찾아 입력하면 골드바흐 파티션이 나오게 된다.

 

 

[알고리즘] 에라토스테네스의 체

에라토스테네스의 체란? 소수를 판별하는 알고리즘. 소수들을 대량으로 빠르게 구할 수 있는 알고리즘이다. 에라토스테네스의 체의 원리 단일 숫자의 소수 여부를 확인하는 가장 기초적인 방법

yongyongyee.tistory.com


  • 코드 1
using System.IO.Pipes;
using System.Text;

namespace YONGYONG2
{
    internal class Program
    {
        public static int count;
        public static StringBuilder sb = new StringBuilder();

        static void Prime(int num)
        {
            int[] temp = new int[10001];
            for (int i = 2; i <= num; i++)
            {
                temp[i] = i;
            }
            for (int i = 2; i <= num; i++)
            {
                if (temp[i] == 0) continue;
                for (int j = i + i; j <= num; j += i)
                {
                    temp[j] = 0;
                }
            }
            
            
             for(int j=num/2;j>=2;j--)
             {
                 if (temp[j] != 0 && temp[num-j] != 0)
                 {
                     sb.Append(j+" ");
                     sb.Append(num-j+"\n");
                     break;
                 }
             }
        }
        static void Main(string[] args)
        {
            int T=int.Parse(Console.ReadLine());
            for(int i=0; i<T; i++)
            {
                int N=int.Parse(Console.ReadLine());
                
                Prime(N);
            }
           
            Console.WriteLine(sb.ToString());

        }
    }
}

  • 후기

sb.Append에는 함수값이 동시에 들어갈 수 없었다. 그래서 저렇게 나누어 넣었다. 아니면 내가 모르는 뭔가 있을지도...?

LIST

'백준 > C#' 카테고리의 다른 글

[C#]백준 1260번: DFS와 BFS  (0) 2023.03.04
[C#]백준 1920번: 수 찾기  (0) 2023.02.19
[C#]백준 6198번: 옥상 정원 꾸미기  (0) 2023.02.05
[C#]4948번: 베르트랑 공준  (0) 2023.02.04
[C#]백준 1929번: 소수 구하기  (0) 2023.02.04

+ Recent posts