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

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

Rikka with Composite Number

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

요약
주어진 숫자 집합에서 무작위로 한 자리씩 이어 붙여 만든 수가 처음으로 합성수가 될 때까지 뽑는 횟수의 기댓값을 998244353으로 나눈 나머지로 구한다.
난이도

어려움10점 중 9점

유형
수학, 확률, 정수론, 동적 계획법
정답자
아직 제출이 없습니다

문제

Rikka는 프로 문제 출제자다. 오늘 그녀는 합성수에 관한 문제의 테스트 케이스를 만들려고 한다.

합성수를 무작위로 생성하기 위해, Rikka는 빈 집합이 아닌 숫자 집합 D⊆{1,2,…,9}D \subseteq \{1,2,\dots, 9\}와 정수 c=0c = 0에서 시작하여 다음을 반복한다. 매 턴마다:

  1. Rikka는 DD에서 숫자 dd를 균등한 확률로 선택한 뒤 cc를 c×10+dc \times 10 + d로 바꾼다.
  2. cc가 이미 합성수라면, Rikka는 cc를 결과로 삼는다. 그렇지 않으면 1단계로 돌아가 새 턴을 시작한다.

생성기의 시간 비용은 중요하다. 따라서 Rikka는 생성기가 합성수를 생성하기 위해 사용하는 턴 수의 기댓값을 계산하기를 원한다.

양의 정수 nn이 합성수라는 것은 nn의 약수인 정수 k∈[2,n−1]k \in [2, n - 1]가 존재한다는 것과 동치이다.

입력

첫째 줄에 길이 99인 0101-문자열이 주어진다. ii번째 문자가 11인 것은 숫자 ii가 DD에 속한다는 것과 동치이다.

입력에서 DD는 비어 있지 않음이 보장된다.

출력

턴 수의 기댓값을 나타내는 정수 하나를 출력한다.

답은 유리수임이 보장된다. 답을 998244353998244353으로 나눈 나머지를 출력해야 한다. 구체적으로, 답의 기약분수 표현이 xy\frac{x}{y}일 때, x×y998244351 mod 998244353x \times y^{998244351} \text{ mod } 998244353을 출력한다.

힌트

첫 번째 예제에서 생성기는 세 번째 턴에 반드시 111111을 반환한다.

두 번째 예제에서는 33가지 경우가 있다:

  • 첫 번째 턴에 44를 반환할 확률은 12\frac{1}{2}이다.
  • 두 번째 턴에 3333을 반환할 확률은 14\frac{1}{4}이다.
  • 두 번째 턴에 3434를 반환할 확률은 14\frac{1}{4}이다.

따라서 턴 수의 기댓값은 32\frac{3}{2}이다.

예제2

  1. 예제 1

    입력
    100000000
    
    예상 출력
    3
    
  2. 예제 2

    입력
    001100000
    
    예상 출력
    499122178