public static void main(String[] args) {
final int DEFAULT_MAX = 10000;
boolean[] selfNumberArr = new boolean
DEFAULT_MAX+1; //인덱스가 selfNumber이면 true를 담는 boolean array 생성
//Arr의 값을 전부 true로 초기화
for(int i = 1; i < selfNumberArr.length; i++) {
}
//1~10000을 돌면서, selfNumber이면 false로 값 변경
for(int i = 1; i < selfNumberArr.length; i++) {
if(d(i)
selfNumberArr
d(i) = false;
}
//selfnumber 출력
for(int i = 1; i < selfNumberArr.length; i++) {
if(selfNumberArr
i == true)
System.out.println(i);
}
}
static int d (int n) {
String nString = Integer.toString(n);
String[] splitnStrings = nString.split("");
int sum = n;
for(int i = 0; i < splitnStrings.length; i++) {
sum += Integer.parseInt(splitnStrings
i);
}
return sum;
}