반응형
[1] 백준 카테고리
단계별로 풀어보기
기본 수학 2
3단계 11653번 문제
수인수분해
[2] 문제
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
1. 입력
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
2. 출력
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다.
3. 예제 입력 1
72
4.예제 출력 1
2
2
2
3
3
[3] 정답
1. 정답 해설 미포함
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static int N = 0;
public static void main(String[] args) throws NumberFormatException, IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
Fa();
}
public static void Fa() {
int i = 2;
while(N >= i) {
if(N%i==0) {
System.out.println(i);
N /= i;
}
else {
i++;
}
}
}
}
2. 정답 해설 포함
import java.io.BufferedReader;
/* BufferedReader 사용을 위해서 java.io.BufferedReader 클래스를 import 한다
Enter를 경계로 인식하고 받은 데이터는 String으로 고정된다.*/
import java.io.InputStreamReader;
/* byte 단위 데이터를 문자 단위 데이터로 처리할 수 있도록 변환해주기 위해서
InputStreamReade를 사용한다.
InputStreamReader 사용을 위해서 java.io.InputStreamRead클래스를 import 한다.*/
import java.io.IOException;
/* 예외 처리를 위해서 IOException를 사용한다
IOException 사용을 위해서 java.io.IOException 클래스를 import 한다.*/
public class Main {
public static int N = 0;
// 접근제어자 public으로 메모리에 상주하게 int형 변수 N 선언
public static void main(String[] args) throws NumberFormatException, IOException{
// 접근제어자 public으로 메모리에 상주하게 리턴값이 없이 main 함수 선언
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// BufferedReader 객체 br를 선언
N = Integer.parseInt(br.readLine());
// 값을 입력받아 전역 변수 N에 저장
Fa();
// 함수 Fa 호출
}
public static void Fa() {
// 전역변수 public으로 메모리에 상주하게 리턴값이 없이 Fa 선언
int i = 2;
// int형 변수 i를 선언하고 값 2를 입력
while(N >= i) {
// N>=i 일때 괄호안의 코드 반복
if(N%i==0) {
// N%i==0 일때 괄호안의 코드 실행
System.out.println(i);
// i출력
N /= i;
// N/i하고 그 값을 변수 N에 저장
}
else {
i++;
// i+1한 값을 i에 저장
}
}
}
}
public static void Fa() {
int i = 2;
while(N >= i) {
if(N%i==0) {
System.out.println(i);
N /= i;
}
else {
i++;
}
}
}
소인수를 구하기 위한 알고리즘을 메소드로 분리해서 따로 구현했다.
2부터 수인수를 구하기 위한 숫자를 나누어서 나머지가 0일 경우 출력한다.
2, 3, 4, 순서로 1씩 커지면서 나눗셈를 하게 된다.
반응형
'프로그래밍 > 백준 문제 풀이(자바)' 카테고리의 다른 글
백준 4948번 자바 문제 답/해설(베르트랑 공준 문제) (0) | 2021.12.26 |
---|---|
백준 1929번 자바 문제 답/해설(소수 구하기 문제) (0) | 2021.12.25 |
백준 2581번 자바 문제 답/해설(소수 문제) (0) | 2021.12.23 |
백준 1978번 자바 문제 답/해설(소수 찾기 문제) (0) | 2021.12.22 |
백준 1011번 자바 문제 답/해설(Fly me to the Alpha Centauri 문제) (0) | 2021.12.21 |