정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다.
N이 1인 경우 아무것도 출력하지 않는다.
72
2
2
2
3
3
3
3
6
2
3
2
2
9991
97
103
-문제의 오타를 찾은 사람: BaaaaaaaaaaarkingDog, Green55
-문제를 만든 사람: baekjoon
-잘못된 조건을 찾은 사람: wjdclgns12
import java.util.Scanner;
public class Code11653 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int N=scanner.nextInt();
int i=2;
if(N!=1) { //N is not 1
while(N>=i) {
if(N%i==0) {
System.out.println(i);
N=N/i;
i=2;
}
else {
i++;
}
}
}
}
}

이 문제랑 비슷한 문제였다.
i를 2로 두고, N을 i로 나누면서 점점 i의 크기를 키워나갔다.
2,3,5,7 순으로 나뉜다. 왜냐하면 4는 2가 이미 나눴을 것이고,
6도 이미 2와 3이 나누기 때문에 자동으로 소인수분해가 된다.

약수, 배수와 소수도 끝냈다!