코딩/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 + " "); } } } } |