CF448E Divisors

题目描述

冠军 Bizon 不仅友好,而且还是一名严谨的程序员。 我们定义函数 $f(a)$,其中 $a$ 是一个整数序列。函数 $f(a)$ 输出如下序列:首先输出 $a_{1}$ 的所有约数,按升序排列;然后输出 $a_{2}$ 的所有约数,按升序排列;以此类推,直到序列 $a$ 的最后一个元素。举例来说,$f([2,9,1])=[1,2,1,3,9,1]$。 我们定义序列 $X_{i}$,对于整数 $i$($i \geq 0$):$X_{0}=[X]$($[X]$ 表示只包含一个数 $X$ 的序列),$X_{i}=f(X_{i-1})$($i>0$)。例如,当 $X=6$ 时,有 $X_{0}=[6]$,$X_{1}=[1,2,3,6]$,$X_{2}=[1,1,2,1,3,1,2,3,6]$。 给定数字 $X$ 和 $k$,请找到序列 $X_{k}$。由于答案可能很大,只需要输出该序列的前 $10^{5}$ 个元素即可。

输入格式

一行包含用空格分隔的两个整数 $X$($1 \leq X \leq 10^{12}$)和 $k$($0 \leq k \leq 10^{18}$)。

输出格式

输出 $X_k$ 序列的元素,按顺序用空格分隔输出。如果元素个数超过 $10^{5}$,只输出前 $10^{5}$ 个元素。

说明/提示

由 ChatGPT 5 翻译