본문 바로가기

코딩 테스트/Project Euler @ kr

46) (소수 + 2×제곱수)로 나타내지 못하는 가장 작은 홀수인 합성수는?

반응형

http://euler.synap.co.kr/prob_detail.php?id=46


Skillist 설명---------------------------------------------------------------------------------


public static void main (String[] args){

HashSet<Integer> sosu = new HashSet<Integer>();

int now;

for(int i=2;;i++){

int j;

for(j=2;j<i/2;j++){

if(i%j==0){

j=-2;

break;

}

}

if(j!=-2){ //소수

sosu.add(i);

}else{ //합성수

if(i%2!=0 && !sosu.contains(i)){

int result = 1;

while(i > result*result*2 ){

if(sosu.contains(i - (result*result*2))){

j=-1;

break;

}

result+=1;

}

if(j!=-1){

System.out.println(i);

return ;

}

}

}

}

}

반응형