자바를 통한 소인수분해

JSK·2022년 7월 31일
0

자바 공부방

목록 보기
1/2

문제설명
소인수분해를 하고 그 결과를 출력하는 프로그램입니다.

작동 순서
1. 수를 입력받습니다.
2. factorization 함수에서 크기가 N+1인 배열 arr을 생성해줍니다.
3. factorization 함수에서 입력받은 수를 div로 나눠가며 나눠질때마다 arr[div]에 1을 더해줍니다.
4. num이 1이 되면 반복문을 종료하고 결과를 반환합니다.
5. 반환된 값을 반복문을 통해서 출력해줍니다.

소스코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class 소인수분해 {
    static int[] factorization(int num){
        int[] arr=new int[num+1];
        int div=2;
        while(num>1){
            if(num%div==0){
                num/=div;
                arr[div]+=1;
            }
            else
                div+=1;
        }
        return arr;
    }
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int N=Integer.parseInt(br.readLine());
        int[] arr=factorization(N);
        for(int i=2;i<arr.length;i++){
            if(arr[i]>0)
                System.out.printf("%d^%d ",i,arr[i]);
        }
    }
}

후기
인터넷을 보니 다들 저랑 다른 방식으로 해놓으셨습니다. 혼자 생각해보고 만들어보는 것도 좋지만 다른 실력 좋은 분들의 코드를 보면서 공부하는 것도 좋은 것 같습니다.

profile
학사지만 AI하고 싶어요...

0개의 댓글