알고리즘 [백준/Java]Q11653 - 반응형 백준 알고리즘 9단계 기본 수학2 11653번 문제입니다. Q. 정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. [입력]- 첫째 줄에 정수 N이 주어진다. [조건]- 1 ≤ N ≤ 10000000 - N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 풀이 소인수분해는 1보다 큰 자연수를 소수인 인수들만의 곱으로 나타내는 것이다. Ex) 72 = 2 * 2 * 2 * 3 * 3 82 = 2 * 41 125 = 5 * 5 * 5 28 = 2 * 2 * 7 소인수분해 결과를 오름차순으로 출력하면 되는 문제이기 때문에 소수 중 가장 작은 수인 2부터 나누기 시작해서 0으로 떨어지지 않는 경우는 증감시키고 0으로 떨어지는 경우는 반복을 해주게 되면 문제를 풀 수 있다. 소스 package com.baek.algo.step09; import java.util.Scanner; public class Q11653 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); if(n == 1) { System.out.println(""); } else { int num = n; int a = 2; while(true) { if(num <= 1) { break; } else { if(num % a == 0) { num = num / a; System.out.println(a); } else { a = a + 1; } } } } sc.close(); } } 반응형 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기3인칭시점 저작자표시 비영리 변경금지 Contents 연관 포스팅 [백준/Java]Q2798 2021. 8. 25. [백준/Java]Q4948 2021. 7. 21. [백준/Java]Q2581 2021. 7. 21. [백준/Java]Q1978 2021. 7. 21. 댓글 0 + 이전 댓글 더보기