코딩테스트 5번

JoMinJun·2021년 7월 17일
0

코딩테스트

목록 보기
18/39

소수 에라토스테네스 체

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));
}}
		
profile
기술정리

0개의 댓글