백준문제풀이 9단계 약수,배수와 소수(6) 11653번 소인수분해 (C#)

2024. 6. 24. 20:00백준 문제풀이/9단계 약수,배수와 소수

 

정수 N을 받아 소인수분해를 하고 결과를 오름차순으로 출력하는 문제

 

using System;
class BackJoon
{
    static void Main(string[] args)
    {
        int n = int.Parse(Console.ReadLine());
        for (int i = 2; i * i <= n; i++)
        {
            while (n % i == 0)
            {
                Console.WriteLine(i);
                n /= i;
            }
        }
        if (n > 1)
            Console.WriteLine(n);
    }
}

 

먼저 정수 N을 받고,

i를 2부터 i * i <= n 까지 돌려주자 저번에 사용한 i <= Math.Sqrt(n)과 같은 방법이다.

n을 i로 나눴을때 나머지가 0 이면 바로 i를 출력해주자.

그리고 n을 i로 나눈값을 n에 넣어주자.

해당 i로 나눴을떄 나머지가 0이 아닐때까지 계속 반복. (while)

 

마지막으로 n이 1보다 크다면 그것은 소수이기 때문에 바로 출력해주면 된다.

 

이것으로 9단계 약수,배수와 소수가 끝났다..!

 

내일부터는 10단계 기하: 직사각형과 삼각형을 풀어보자!