코딩/SW Expert Academy

3131. 100만 이하의 모든 소수

금손형아 2018. 3. 15. 00:21

문제 출처 : 


에라토스테네스의 체를 사용하면 됩니다.


어제까지만 해도


System.out.print("ㅁㄴㅇㅁㄴㅇ")가 잘 출력됐는데,


지금 해보니 안되네요. 아놔 미추어버리겠네.


public class Q3131 {

public static void main(String[] args) {

int size = 1000001;

boolean[] result = new boolean[size];

// true = 소수 아닌 수, false = 소수

for (int i = 4; i < size; i += 2) {

result[i] = true;

}

for (int i = 3; i < size; i += 2) {

if (!result[i]) {

for (int j = i*2; j < size; j += i) {

result[j] = true;

}

}

}

System.out.print("2 ");

for (int i = 3; i < size; i += 2) {

if (!result[i]) {

System.out.print("" + i + " ");

}

}

}

}