본문 바로가기
C#/백준 알고리즘

2022.01.27 [백준] C# 베르트랑 공준

by ian's coding 2022. 1. 27.
728x90
반응형

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

 

4948번: 베르트랑 공준

베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼

www.acmicpc.net


풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Text;
class Program{
    static void Main(){
        StringBuilder sb = new StringBuilder();
            while (true)
            {
                int n = int.Parse(Console.ReadLine());
                if (n == 0)
                {
                    break;
                }
                bool flag=true;
                int cnt=0;
                for (int i = n + 1; i <= 2 * n; i++)
                {
                    for (int j = 2; j*<= i; j++)
                    {
                        if (i % j == 0 && i != j)
                        {
                            flag = false;
                            break;
                        }
                    }
                    if (flag)
                    {
                        cnt++;
                    }
                    flag = true;
                }
                sb.Append(cnt + "\n");
            }
            Console.WriteLine(sb);
    }
}
cs

소수를 찾는 2번째for문에서 j<i로 했을 때, 시간 초과가 발생해서 시간을 줄일 수 있게 j*j<=i로 바꾸어 문제를 해결했다.

 

 

 

 

728x90
반응형

댓글