에라토스테네스의 체

알고리즘/정수론

[백준] 1837번 암호제작 (JAVA)

문제 https://www.acmicpc.net/problem/1837 1837번: 암호제작 원룡이는 한 컴퓨터 보안 회사에서 일을 하고 있다. 그러던 도중, 원룡이는 YESWOA.COM 으로부터 홈페이지 유저들의 비밀키를 만들라는 지시를 받았다. 원룡이는 비밀 키를 다음과 같은 방법으로 www.acmicpc.net 설명 어떤 특정한 소수 p와 q를 주어 두 소수의 곱 pq를 비밀 키로 두었다. 두 소수 p, q 중 하나라도 K보다 작은 암호는 좋지 않은 암호로 간주하여 제출하지 않기로 하였다. 먼저 K보다 작은 소수를 에라토스테네스의 체를 이용해 구한다. P가 구한 소수들에 나누어 떨어지는지 확인하고 하나라도 있다면 break를 하여 빠져나온다. boolean[] checked = new boolean..

알고리즘/정수론

[백준] 1644번 소수의 연속합 (JAVA)

문제 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 설명 자연수가 주어졌을 때, 이 자연수를 연속된 소수의 합으로 나타낼 수 있는 경우의 수를 구해야 한다. 먼저 입력된 수보다 작거나 같은 소수를 구한다. 에라토스테네스의 체를 이용하면 쉽게 구할 수 있다. 소수인 수의 배수만 지우면 나머지는 소수가 된다는 방식이다. 나중에 연속된 소수의 합을 구하기 쉽게 소수인 수만 primeList에 저장해놓는다. boolean[] prime = new boolean[N + 1]; List primeList = new ArrayList(); // 소수는 false로 표시, 0..

알고리즘/정수론

[CS] 에라토스테네스의 체 (JAVA)

에라토스테네스의 체 소수가 되는 수의 배수를 지우면 남은 건 소수가 된다. 아래는 위키백과에 나온 에라토스테네스의 체를 이용해 소수를 구하는 방법이다. 2부터 소수를 구하고자 하는 구간의 모든 수를 나열한다. 2는 소수이므로 오른쪽에 2를 쓴다. (빨간색) 자기 자신을 제외한 2의 배수를 모두 지운다. 남아있는 수 가운데 3은 소수이므로 오른쪽에 3을 쓴다. (초록색) 자기 자신을 제외한 3의 배수를 모두 지운다. 남아있는 수 가운데 5는 소수이므로 오른쪽에 5를 쓴다. (파란색) 자기 자신을 제외한 5의 배수를 모두 지운다. 남아있는 수 가운데 7은 소수이므로 오른쪽에 7을 쓴다. (노란색) 자기 자신을 제외한 7의 배수를 모두 지운다. 위의 과정을 반복하면 구하는 구간의 모든 소수가 남는다. 위의 그..

damon-911
'에라토스테네스의 체' 태그의 글 목록