코딩 연습/백준

소인수분해-시간초과

blackbearwow 2022. 4. 23. 20:46
import java.util.*;
public class Main
{
	public static void main(String[] args)
	{
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int primeNum = 2;
		while(true)
		{
			//n을 primeNum으로 나눌 수 있는가? 나눈다. n /=primeNum 
			//아니다. 다음 primeNum을 찾고 반복.
			if(n%primeNum==0)
			{
				System.out.println(primeNum);
				n /= primeNum;
				if(n==1) break;
				//primeNum = 2;
			}
			else
			{
				primeNum = nextPrimeNum(primeNum);
			}
		}
		sc.close();
	}
	public static int nextPrimeNum(int primeNum)
	{
		while(true)
		{
			int count=0;
			primeNum++;
			for(int i=2; i<primeNum; i++)
				if(primeNum%i==0) count++;
			if(count==0) break;
		}
		return primeNum;
	}
}

'코딩 연습 > 백준' 카테고리의 다른 글

시간초과 (python, java)  (0) 2022.05.25
별 찍기 - 10 시간초과  (0) 2022.04.25
소수 구하기-시간초과  (0) 2022.04.23