http://euler.synap.co.kr/prob_detail.php?id=49
Skillist 설명---------------------------------------------------------------------------------
public static void main (String[] args){
LinkedList<Integer> sosu = new LinkedList<Integer>();
for(int i = 1001; i<10000;i++){ //소수 판별
int temp=0;
for(int j=2;j<i/2;j++){
if(i%j==0){
temp+=1;
break;
}
}
if(temp==0){
sosu.add(i);
}
}
for(int i=0;i<sosu.size()-2;i++){
int now = inputsu(String.valueOf(sosu.get(i))); //1번째 숫자
for(int j=i+1;j<sosu.size();j++){
if(sosu.contains((sosu.get(j)+(sosu.get(j)-sosu.get(i))))){ //등차 수열로 존재할 경우
int here = inputsu(String.valueOf(sosu.get(j)));
if(now == here){ //2번째 숫자가 순열이면
here = inputsu(String.valueOf((sosu.get(j)+(sosu.get(j)-sosu.get(i)))));
if(now == here){ //3번째 숫자가 순열이면
System.out.println(sosu.get(i) + " / " + sosu.get(j) + " / " + (sosu.get(j)+(sosu.get(j)-sosu.get(i))));
}
}
}
}
}
}
public static int inputsu(String su){ //순열 확인
int total=0;
for(int j=0;j<4;j++){
switch(su.charAt(j)-48){
case 0:
break;
case 1:
total+=1;
break;
case 2:
total+=10;
break;
case 3:
total+=100;
break;
case 4:
total+=1000;
break;
case 5:
total+=10000;
break;
case 6:
total+=100000;
break;
case 7:
total+=1000000;
break;
case 8:
total+=10000000;
break;
case 9:
total+=100000000;
break;
}
}
return total;
}
'코딩 테스트 > Project Euler @ kr' 카테고리의 다른 글
51) 일부 숫자를 치환했을 때 8개의 서로 다른 소수가 생기는 가장 작은 소수 (0) | 2017.03.06 |
---|---|
50) 1백만 이하의 소수 중 가장 길게 연속되는 소수의 합으로 표현되는 수는? (0) | 2017.03.03 |
45) 오각수와 육각수도 되는, 40755 다음으로 큰 삼각수는? (0) | 2017.03.02 |
44) 합과 차도 모두 오각수인 두 오각수 차의 최소값은? (0) | 2017.03.02 |
47) 서로 다른 네 개의 소인수를 갖는 수들이 처음으로 네 번 연속되는 경우는? (0) | 2017.03.01 |