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

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

팩토리얼

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

요약
7 이상 10^14 이하의 정수 N 하나를 출력해, N!에 10의 거듭제곱을 곱한 값이 정수에 얼마나 가까운지로 점수를 최대화하는 문제다.
난이도

어려움10점 중 8점

유형
정수론, 수학, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

여러분은 다음과 같은 문제를 본 적이 있을 것이다.

TODO: 여기에 1984번 문제 입력

(2)나 (3)은 쉬우므로 우리는 특히 (1)에 집중한다.

겉보기에는 로그를 잘 더해서 계산하면 될 것 같지만, 코드를 단순히 그렇게 작성할 경우 실수 오차가 걱정된다.

키파는 이 문제를 세팅하고 있으며, (1)을 풀 때 실수 오차가 잘 날 수 있는 경우를 테스트 케이스로 작성해서 넣으려 한다.

키파를 도와 주자.

입력

입력은 없다.

출력

양의 정수를 하나 출력한다. 출력하는 정수는 7 이상 100000000000000 이하여야 한다.

제한

(원문에 제한이 없습니다.)

득점 방식

출력한 수를 NN이라 하고, 다음 실수 xNx_{N}을 정의하자.

xN:=N!⋅101−⌊log⁡10(N!)⌋x_{N} := N! \cdot 10^{1 - \left\lfloor \log_{10}(N!) \right\rfloor}

출제진이 미리 정해 놓은 수 ε=1.5×10−14\varepsilon = 1.5 \times 10^{-14}에 대해 점수와 관련 있는 실수 SS는 다음과 같다.

S=998244353⋅min⁡{1,ε∣xN−⌊xN+0.5⌋∣}S = 998244353 \cdot \min\left\{1, \frac{\varepsilon}{\left|x_{N} - \left\lfloor x_{N} + 0.5 \right\rfloor \right|}\right\}

S=998244353S = 998244353인 경우 998244353점을 받게 되며, 이외의 경우는 점수와 SS와의 차이가 0.020.02 이하임이 보장된다.

점수는 항상 0.010.01의 정수 배이다.

예제1

  1. 예제 1

    입력
    예상 출력
    7