본문 바로가기
java&eclipse 코딩 알고리즘/20231206

SooinsooTest

by 몽상크리에이터 2023. 12. 14.

package k20231206;

 

import java.util.Iterator;

import java.util.Scanner;

 

public class SooinsooTest {

 

public static void main(String[] args) {

 

Scanner scanner = new Scanner(System.in);

 

while (true) {

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

int n = scanner.nextInt();

// 입력받은 수가 2 미만이면 무한루프를 탈출한다/

if (n<2) {

break;

}

 

// 소인수 분해

int[] s = new int[20];

int number = n;

int c = 0; // s배열의 인덱스, 소인수의 개수

 

while (true) {

int k = 2; //소인수 분해를 시작하는 숫자 초기화

 

while (true) {

 

int r = n % k;

if ( r==0 ) { //소인수 분해가 되었는가?

break;

}

// 소인수 분해가 되지 않았다면 k를 1증가시킨다

k++;

}

// 소인수 분해가 되었으면 s배열에 소인수를 저장한다.

s[c++]=k;

// 다음 소인수를 얻기 위해 n에 n을 k로 나눈 몫을 저장한다.

n/=k;

if (n==1) { //소인수 분해가 끝났는가

break;

}

}

 

// n이 소수면 소수라고 출력, 아니면 분해된 소인수를 출력한다.

// 소인수의 개수(c)가 1개라면 소수이다.

if (c==1) { // n이 소수인가

System.out.println(number + "는(은) 소수입니다");

} else { //소인수를 출력한다

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

for (int y = 0; y<c-1; y++) {

System.out.print(s[y] + " * ");

}

System.out.println(s[c-1]);

}

 

}

System.out.println("프로그램 종료");

}

}

'java&eclipse 코딩 알고리즘 > 20231206' 카테고리의 다른 글

StringMethodTest  (0) 2023.12.14
SosooTest  (0) 2023.12.14
ClassIncludeTest  (0) 2023.12.14
DateTimeTest2  (0) 2023.12.14
DateTimeTest  (0) 2023.12.14