가장 큰 소인수 구하기
Problem 3
어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다.
예를 들면 13195의 소인수는 5, 7, 13, 29 입니다.
600851475143의 소인수 중에서 가장 큰 수를 구하세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import java.util.ArrayList; import java.util.Collections; public class euler_p3 { public static void main(String[] args) { long num = 600851475143L; int i = 2; ArrayList<Integer> arrList = new ArrayList<Integer>(); long result = 1L; /* while(i < num-1) { if(num % i == 0) { arrList.add(i); result *= i; System.out.println(i + " : " + result); if(result == num) break; else i++; } else i++; } */ while(num != 1) { if(num % i == 0) { System.out.println(i); arrList.add(i); num = num / i; } i++; } System.out.println(">>" + Collections.max(arrList)); } } | cs |