728x90
1. 문제
6219번: 소수의 자격
세 정수 A, B, D가 주어진다.
www.acmicpc.net
2. 해결방법
N의 크기가 작았기에
에라토스테네스의 체 알고리즘을 사용하였다.
[ 알고리즘/ Python ] 소수 구하기 : 에라토스테네스의 체
코테, 백준 문제를 풀다보면 '소수'를 구하는 문제가 꽤나 나온다. 소수를 사람의 손으로 풀기에는 다소 어려움이 있을 수 있다. 2,3,5,7 .. 정도는 괜찮지만 컴퓨터 암호화에 사용되는 아주 큰 소
0lrlokr.tistory.com
3. 코드
A = [False, False] + [True]*4000000
for i in range(2, 4000000):
if A[i]:
for j in range(i+i,4000000, i ):
A[j] = False
a,b,d = map(int,input().split())
cnt = 0
for i in range(a,b+1):
if A[i]:
if str(d) in str(i):
cnt+=1
print(cnt)
소수를 판정하는 문제에서 n이 10^6 정도로 주어지면 에라토스테네스의 체를 사용하여 간단하게 풀 수 있다!
'[알고리즘] > BOJ' 카테고리의 다른 글
[백준/Python] 3020번: 개똥벌레(imos 알고리즘) (0) | 2023.03.28 |
---|---|
[백준/Python]9417번: 최대 GCD (0) | 2023.03.21 |
[백준/Python]15624번: 피보나치 수 7 (DP) (0) | 2023.03.19 |
[백준/Python] 1010번: 다리놓기 (조합) (0) | 2023.03.07 |
[백준/Python] 3040번: 백설 공주와 일곱 난쟁이 (완전탐색) (0) | 2023.03.06 |