아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

축약 가능한 소수

시간 제한1초메모리 제한512 MB

요약
구간 [a, b] 안에서 왼쪽에서 자른 모든 앞부분이 소수인 정수의 개수를 구합니다.
난이도

보통10점 중 7점

유형
백트래킹, 정수론
정답자
아직 제출이 없습니다

문제

소수란 서로 다른 약수가 정확히 두 개, 즉 11과 자기 자신만을 갖는 양의 정수를 말합니다. 어떤 수 aa가 수 bb의 접두사라는 것은, bb의 끝에서 자릿수 몇 개를 지워서 aa를 만들 수 있다는 뜻입니다. 예를 들어 12311231은 1231443312314433의 접두사입니다. 축약 가능한 소수란, 길이가 00이 아닌 모든 접두사가 소수인 수를 말합니다. 예를 들어 2323은 축약 가능한 소수입니다. 비어 있지 않은 접두사 22와 2323이 모두 소수이기 때문입니다.

두 양의 정수 aa, bb (a≤ba \le b)가 주어질 때, 닫힌구간 [a,b][a, b]에 속하면서 축약 가능한 소수인 정수가 몇 개인지 세는 프로그램을 작성하세요.

입력

표준 입력의 한 줄에 두 정수 aa, bb (1≤a≤b≤10181 \le a \le b \le 10^{18})가 공백으로 구분되어 주어집니다.

출력

aa 이상 bb 이하인 축약 가능한 소수의 개수를 한 줄에 정수 하나로 출력합니다.

힌트

이러한 수는 유한개만 존재합니다. 첫 자리는 한 자리 소수 22, 33, 55, 77 중 하나여야 하고, 오른쪽에 자릿수를 하나씩 이어 붙일 때 생기는 수가 모두 소수여야 합니다. 따라서 조건을 만족하는 수를 미리 모두 만들어 둔 뒤, 구간에 속하는 개수를 세면 됩니다.

예제3

  1. 예제 1

    입력
    20 24
    
    예상 출력
    1
    
  2. 예제 2

    입력
    1 10
    
    예상 출력
    4
    
  3. 예제 3

    입력
    1 1000000000000000000
    
    예상 출력
    83