C#

008_Prime

iwannabebackendexpert 2022. 3. 15. 01:00
static void Main(string[] args)
        {
            int cnt = 0;
            for (int i = 2; i <= 1000; i++) // 2 ~ 1000
            {
                int j;
                for (j = 2; j < i; j++) //나누는 수
                {
                    if (i % j == 0) break; // 나누어 떨어진다면 소수가 아니므로 break;

                }
                if (j == i) //반복문을 지나쳐 j == i 인 조건까지 왔다면 소수. 소수는 1과 자기자신으로 나누어 떨어짐
                {
                    Console.Write("{0}\t", i);
                    cnt++;
                    
                }
            }
            Console.WriteLine();
            Console.WriteLine("소수의 개수 : {0}", cnt);
        }

소수 출력 결과 168개

1.외부 loop 2 ~ 1000까지 반복문을 수행

2. 내부 loop - 외부 loop의 값을 나누려는 수

3. 외부 loop 'i' 가 내부 loop 'j' 로 나누어 떨어지면 소수에서 제외 . > break;

4.  내부 loop를 지나쳐 i == j 조건 까지 도달하면 소수.

※ 조건문이 2부터 시작하는 이유 : 소수는 1과 자기자신으로 나누어 떨어지기때문에 1부터 시작한다면 무조건 나누어 지기 때문에 소수를 걸러낼 수 없음.

'C#' 카테고리의 다른 글

010_Array  (0) 2022.03.15
009_Pyramid  (0) 2022.03.15
007_구구단  (0) 2022.03.15
006_Power  (0) 2022.03.14
005_Loop  (0) 2022.03.14