Rikka with Composite Number
시간 제한1초메모리 제한512 MB
주어진 숫자 집합에서 무작위로 한 자리씩 이어 붙여 만든 수가 처음으로 합성수가 될 때까지 뽑는 횟수의 기댓값을 998244353으로 나눈 나머지로 구한다.
문제
Rikka는 프로 문제 출제자다. 오늘 그녀는 합성수에 관한 문제의 테스트 케이스를 만들려고 한다.
합성수를 무작위로 생성하기 위해, Rikka는 빈 집합이 아닌 숫자 집합 와 정수 에서 시작하여 다음을 반복한다. 매 턴마다:
- Rikka는 에서 숫자 를 균등한 확률로 선택한 뒤 를 로 바꾼다.
- 가 이미 합성수라면, Rikka는 를 결과로 삼는다. 그렇지 않으면 1단계로 돌아가 새 턴을 시작한다.
생성기의 시간 비용은 중요하다. 따라서 Rikka는 생성기가 합성수를 생성하기 위해 사용하는 턴 수의 기댓값을 계산하기를 원한다.
양의 정수 이 합성수라는 것은 의 약수인 정수 가 존재한다는 것과 동치이다.
입력
첫째 줄에 길이 인 -문자열이 주어진다. 번째 문자가 인 것은 숫자 가 에 속한다는 것과 동치이다.
입력에서 는 비어 있지 않음이 보장된다.
출력
턴 수의 기댓값을 나타내는 정수 하나를 출력한다.
답은 유리수임이 보장된다. 답을 으로 나눈 나머지를 출력해야 한다. 구체적으로, 답의 기약분수 표현이 일 때, 을 출력한다.
힌트
첫 번째 예제에서 생성기는 세 번째 턴에 반드시 을 반환한다.
두 번째 예제에서는 가지 경우가 있다:
- 첫 번째 턴에 를 반환할 확률은 이다.
- 두 번째 턴에 을 반환할 확률은 이다.
- 두 번째 턴에 를 반환할 확률은 이다.
따라서 턴 수의 기댓값은 이다.