[알고리즘]/BOJ

[백준/Python] 6219번: 소수의 자격

개발새발주발 2023. 3. 21. 10:59
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 정도로 주어지면 에라토스테네스의 체를 사용하여 간단하게 풀 수 있다!