728x90

소인수분해! 

이 문제는 제가 이전에 설명했던 에네스토체네스의 체를 이용하면 더 욱더 쉽게 풀수 있는 문제입니다.

 

수학적으로 소인수분해를 할때는 루트를 사용하여 문제를 푸시면 더욱더 쉽게 풀수있습니다 .

Math.sqrt(값) 루트를 씌우는 함수? 입니다. 

import java.util.Scanner;

public class  Main{

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		
		for(int i=2; i<= Math.sqrt(n); i++) {
			while(n %i ==0) {
				System.out.println(i);
				n/=i;
			}
		}
		if(n !=1) {
			System.out.println(n);
		}
	}
}

소수 2를 시작으로 해서 값의 루트를 씌운 수를 나누면 됩니다. 

728x90
복사했습니다!