728x90
반응형
728x90
자연수 N이 입력되면 1부터 N까지의 소수의 개수를 출력한다.
만약 20이 입력되면 1부터 20까지의 소수는 2, 3, 5, 7, 11, 13, 17, 19로 총 8개이다.
반응형
배열의 크기를 N+1 크기로 선언한다.
그런 다음, for문을 2부터 순회하는데,
arr[i]가 0이면, j를 i만큼 계속 값을 더해서 arr[j]의 값을 1로 초기화한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Main m = new Main();
Scanner sc = new Scanner(System.in);
System.out.println(m.solution(sc.nextInt()));
}
public static int solution(int num) {
int answer = 0;
int[] arr = new int[num + 1];
for (int i = 2; i <= num; i++) {
if(arr[i] == 0) {
answer++;
for (int j = i; j <= num; j+=i) arr[j] = 1;
}
}
return answer;
}
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘/java] 조합을 구하는 코드 공식 (0) | 2021.11.30 |
---|---|
[알고리즘/java] 2차원 배열 행, 열, 대각선 최대값 구하기 (0) | 2021.09.06 |
[알고리즘/java] 알맞은 팰린드롬(회문) (0) | 2021.09.06 |
[알고리즘/java] 중복된 문자 제거하기 (0) | 2021.09.06 |
[알고리즘/java] 특정 문자만 뒤집기를 할 때 (0) | 2021.09.06 |
댓글