728x90
반응형
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.
풀이
우선 2개의 반복문을 사용한다.
외부에 while은 입력 받은 수가 나눗셈 연산을 거듭하면서 마지막에 1로 수렴하는 것을 판단한다.
for는 나눠지는 수를 찾기 위해 i가 2부터 증가하며 만약 입력 받은 값이 i로 나눠진다면 나눈후 i값을 출력한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import java.util.Scanner; /** * Created by homr on 2017. 6. 3.. */ public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); while(num!=1){ for(int i=2; i<=num; i++){ if(num%i==0){ num /= i; System.out.println(i); break; } } } } } | cs |
반응형
'알고리즘 문제풀이' 카테고리의 다른 글
[알고리즘] 동적 계획법(Dynamic Programming) - 1 (4) | 2017.06.06 |
---|---|
[알고리즘] 최단경로(Shortest Path Problem) - 2 (0) | 2017.06.03 |
[알고리즘] 최단경로(Shortest Path Problem) - 1 (0) | 2017.06.02 |
[알고리즘] 최소비용신장트리(Minimum Spanning Tree) - 4 (0) | 2017.06.02 |
[알고리즘] 최소비용신장트리(Minimum Spanning Tree) - 3 (0) | 2017.06.02 |
댓글