관리 메뉴

밤색모자이크의 개발이야기

Project Euler Problem 10 : 이백만 이하 소수의 합 본문

Algorithm/Project Euler

Project Euler Problem 10 : 이백만 이하 소수의 합

밤색모자이크 2017. 6. 19. 10:30


Project Euler 문제를 해답을 포스팅합니다.

※ 주의 : 최적화는 할 수 있는 만큼했습니다. 따라서 속도면에서는 많이 부족합니다.

           문제를 푸는데 목표를 두었고 또한 TDD를 최대한 활용하였습니다.

           몇가지 문제의 경우 TDD를 안한 경우도 있습니다.

           혹시, 최적화 또는 속도 증가에 대한 부분을 지적해주실 분은 너무나도 감사합니다.



Project Euler Problem 10


10 이하의 소수를 모두 더하면 2 + 3 + 5 + 7 = 17 이 됩니다.

이백만(2,000,000) 이하 소수의 합은 얼마입니까?




이 문제는 도저히 어떻게 최적화 할 지 모르겠습니다.

7번 문제에서 사용했던 소수체크 클래스를 재사용하였습니다.




Source Code


Main Class Code

public class Main { 

    public static void main(String [] args) {
         
        PrimeNumChecker checker = new PrimeNumChecker(); 
         
        int count = 1; 
        long result = 0; 
         
        while(true) { 
            count++; 
            if( count > 2000000) { 
                break; 
            } 
             
            if(checker.primeNumcheck(count)) { 
                result += count; 
                System.out.println(count); 
            } 
             
        }//end of while     
         
        System.out.println(result); 
    } 
     
}




Comments