1. 문제

6219번: 소수의 자격

2. 개요

A이상 B이하인 수 가운데 D를 포함하는 소수의 개수를 구하는 문제.

3. 코드 및 추가내용

import sys

A, B, D = map(int, sys.stdin.readline().split())

nums = [-1, -1] + [i for i in range(2, B+1)]
ans = 0

for i in range(2, B+1):
    if nums[i] == -1: continue
    for j in range(i*2, B+1, i):
        nums[j] = -1

for i in range(A, B+1):
    if nums[i] == -1:
        continue

    ans += str(D) in set(str(nums[i]))

print(ans)

소수를 판별할 리스트를 만들고, 에라토스체네스의 체를 이용하여 소수만 남긴다.

A ~ B사이의 수를 확인하며 D가 들어있다면 ans를 1씩 증가시키고 최종 결과물을 출력한다.

Comments