만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

팩토리얼 자릿수 빈도

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

요약
0이 나올 때까지 n을 읽고, 각 n에 대해 n!(n은 366 이하)의 십진 표현에서 숫자 0부터 9까지 각각 몇 번 나타나는지 세어 정해진 두 줄 형식으로 출력한다.
난이도

쉬움10점 중 3점

유형
수학, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

부진한 손금 사업을 살리기 위해, 마담 피닉스는 손님들에게 몇 가지 수비학(數祕學) 서비스를 제공하기로 했습니다. 그녀는 팩토리얼을 십진법으로 나타냈을 때 각 숫자가 나타나는 빈도가 손님의 미래를 말해 준다고 손님들을 설득했습니다. 하지만 손금과 달리 이 빈도는 마음대로 지어낼 수 없기에, 그녀는 이 값을 계산할 사람으로 당신을 고용했습니다.

n!n!(즉 nn 팩토리얼)은 1×2×3×⋯×n1 \times 2 \times 3 \times \cdots \times n 으로 정의됨을 기억하세요. 그녀는 요일, 날짜(일), 또는 연중 며칠째인지를 nn 값으로 사용할 예정이므로, 당신의 프로그램은 781781자리 수인 366!366! 만큼 큰 수에서도 각 십진 숫자가 몇 번 나타나는지 셀 수 있어야 합니다.

입력

입력은 자릿수 빈도를 구하려는 정수들의 목록이며, 각 정수는 한 줄에 하나씩 주어집니다. 모든 입력 값은 00보다 크고 366366 이하이며, 마지막 값만 예외로 00입니다. 이 마지막 00은 처리하지 말고, 그 지점에서 읽기를 멈추세요.

출력

각 입력 값 nn에 대해 (입력 순서대로) 먼저 n! -- 형식의 줄을 출력합니다. 그다음 n!n!에 들어 있는 각 십진 숫자의 개수를 두 줄에 걸쳐 출력하는데, 첫 줄에는 숫자 00부터 44까지, 둘째 줄에는 숫자 55부터 99까지를 씁니다.

각 숫자 항목은 공백 세 칸, 괄호로 감싼 숫자, 폭 55칸으로 오른쪽 정렬한 개수, 그리고 공백 한 칸 순서로 출력합니다. 즉 한 줄에 놓이는 다섯 개 숫자에 대해 C 형식 (%d)%5d 를 반복한 것과 같으며, 따라서 두 줄 모두 공백 한 칸으로 끝납니다. 이 출력 형식을 정확히 지켜야 합니다.

힌트

마담 피닉스는 당신에게 영원히(혹은 그 이상) 신세를 지게 될 것입니다. 일을 잘 해내면 여행이라도 보내 줄지 모릅니다!

예제4

  1. 예제 1

    입력
    3
    
    8
    
    100
    
    0
    
    예상 출력
    3! --
       (0)    0    (1)    0    (2)    0    (3)    0    (4)    0 
       (5)    0    (6)    1    (7)    0    (8)    0    (9)    0 
    8! --
       (0)    2    (1)    0    (2)    1    (3)    1    (4)    1 
       (5)    0    (6)    0    (7)    0    (8)    0    (9)    0 
    100! --
       (0)   30    (1)   15    (2)   19    (3)   10    (4)   10 
       (5)   14    (6)   19    (7)    7    (8)   14    (9)   20 
    
  2. 예제 2

    입력
    1
    0
    
    예상 출력
    1! --
       (0)    0    (1)    1    (2)    0    (3)    0    (4)    0 
       (5)    0    (6)    0    (7)    0    (8)    0    (9)    0 
    
  3. 예제 3

    입력
    5
    0
    
    예상 출력
    5! --
       (0)    1    (1)    1    (2)    1    (3)    0    (4)    0 
       (5)    0    (6)    0    (7)    0    (8)    0    (9)    0 
    
  4. 예제 4

    입력
    2
    0
    
    예상 출력
    2! --
       (0)    0    (1)    0    (2)    1    (3)    0    (4)    0 
       (5)    0    (6)    0    (7)    0    (8)    0    (9)    0