본문 바로가기

JAVA/알고리즘 예제

[JAVA] 소인수 분해(Integer Factorization)


package jungbo;


import java.util.InputMismatchException;

import java.util.Scanner;


public class T32IntegerFactorization {

public static void main(String[] args) {

int num;//수를 입력받을 변수

int print;//출력을 위한 변수

Scanner scan = new Scanner(System.in);

while(true){

try{

System.out.print("소인수분해 할 수를 입력하세요. : ");

num = scan.nextInt();

print = num;//num은 변하기 때문에 출력을 위해 print에 미리 넣어둠

break;

}catch(InputMismatchException ex){

System.out.println("숫자만 입력해야 합니다.");

}

}

scan.close();

int array[] = new int[20];//답항을 출력할 변수

int cnt=0;//배열 자리 지정 변수

int div=2;//나누기에 사용할 변수

if(num>=2){

while(true){

if(num%div==0){

array[cnt]=div;

cnt++;

num=num/div;

if(num==1)break;

}else{

div++;

}

}

}

System.out.print(print+" = ");

for(cnt=0;cnt<array.length;cnt++){

if(array[cnt]!=0){

System.out.print(array[cnt]);

if(array[cnt+1]!=0){

System.out.print("*");

}

}

}

}

}



'JAVA > 알고리즘 예제' 카테고리의 다른 글

[JAVA] 행렬 변환  (1) 2016.09.06
[JAVA] 진법 변환(Radix Transformation)  (1) 2016.09.06
[JAVA] 대각선 채우기(diagonal)  (1) 2016.09.05
[JAVA] 합병(Merge)  (1) 2016.09.05
[JAVA] 90도 회전 (Rotate)  (1) 2016.09.02