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

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

피보나미얼

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

요약
1부터 n까지 피보나치 수의 곱에 2부터 p까지 각 정수가 몇 번 들어가는지 구합니다.
난이도

어려움10점 중 8점

유형
정수론, 수학
정답자
아직 제출이 없습니다

문제

피보나치 수열 fnf_n은 다음과 같이 정의한다.

f0=0,f1=1,fn=fn−1+fn−2    (n≥2)f_0 = 0, \quad f_1 = 1, \quad f_n = f_{n-1} + f_{n-2} \;\; (n \ge 2)

피보나미얼 FnF_n (n≥1n \ge 1)은 Fn=f1×f2×⋯×fnF_n = f_1 \times f_2 \times \cdots \times f_n으로 정의한다. 즉 f1f_1부터 fnf_n까지를 모두 곱한 값이다.

22 이상 pp 이하인 각 자연수 kk에 대해, FnF_n이 더 이상 kk로 나누어떨어지지 않을 때까지 FnF_n을 kk로 몇 번 나눠야 하는지 구하는 프로그램을 작성하라.

입력

첫째 줄에 자연수 nn과 pp가 공백 하나를 사이에 두고 주어진다. (1≤n≤1091 \le n \le 10^9, 2≤p≤1032 \le p \le 10^3)

출력

p−1p - 1개의 줄에 답을 출력한다. ii번째 줄 (1≤i≤p−11 \le i \le p - 1)에는 FnF_n이 더 이상 i+1i + 1로 나누어떨어지지 않게 하려면 FnF_n을 i+1i + 1로 몇 번 나눠야 하는지 출력한다.

힌트

F12=1570247078400=29×34×52×7×11×13×17×89F_{12} = 1570247078400 = 2^9 \times 3^4 \times 5^2 \times 7 \times 11 \times 13 \times 17 \times 89이므로, F12F_{12}는 22로 아홉 번, 44로 네 번 나눌 수 있다.

예제5

  1. 예제 1

    입력
    12 6
    
    예상 출력
    9
    4
    4
    2
    4
    
  2. 예제 2

    입력
    1 2
    
    예상 출력
    0
    
  3. 예제 3

    입력
    2 5
    
    예상 출력
    0
    0
    0
    0
    
  4. 예제 4

    입력
    3 4
    
    예상 출력
    1
    0
    0
    
  5. 예제 5

    입력
    6 10
    
    예상 출력
    4
    1
    2
    1
    1
    0
    1
    0
    1