소수 에라토스테네스 체
package main;
import java.util.Scanner;
public class Main {
public int sol( int n) {
// -> 도저히 안되서 강의 내용 봤습니다! ㅜㅜ
int answer = 0;
//배열을 전부 0 으로 초기화 시켜놓는다
int [] ch = new int [n + 1];
// 초기화된 배열에서 2는 처음 소수이다.
for(int i = 2; i <= n ; i ++) {
// 소수 2 = 0 이므로,
if(ch[i] == 0) {
// answer를 ++ 시키고,
answer ++;
// 소수 2 의 배수인 2,4,6,8,10 ... 을 전부 1로 변경시켜놓는다
for(int j = i ; j <= n ; j = j + i) {
ch[j] = 1;
}
}
}
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
int b = scan.nextInt();
System.out.println(main.sol(b));
}}