728x90

 

 

문제

 

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.

 

입력

 

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

 

출력

 

N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.

 

 

코드

 

import java.io.*;
import java.util.*;

public class Main {
	static Scanner sc = new Scanner(System.in);
	public static void main(String args[]) throws IOException
	{
		/* 11653 소인수분해
		 * 정수 입력받아서 소인수 분해
		   */
		
		int n = sc.nextInt();
		
		for(int i = 2; i <= n;) //소인수는 1보다 큽니다, 그래서 2부터 시작
		{
			if(n%i == 0) // 나머지가 0이면 출력
			{
				n/=i;
				System.out.println(i);
			}
			else
			{
				i++;
			}
		}
			
	}
}ll

 

 

풀이

 

https://fall-in-dream.tistory.com/22

 

코딩테스트 연습 > 코딩테스트 입문 > 소인수분해 - JAVA

문제 문제 설명 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매

fall-in-dream.tistory.com

위의 문제랑 비슷한데

이 문제는 그냥 출략하면 되서 더 단순하다.

 

다음에 또 봐요

 

+ Recent posts