#1051. 幂次数(num.cpp)

幂次数(num.cpp)

【题目描述】

小X喜欢做数学题。

小X在进入初中后,天天研究数字。有一天,他发现了一种“冪次数”。幂次数可以表示为 a^b(其中a 为质数,b为自然数)。如果 a^b整除正整数x,并且 a^{b+1}不整除x, 那么我们称a^b为正整数x的幂次数。

现在我们有一个正整数x,请你帮小X求出的最大的k个幂次数。

注:1为任何数的幂次数。

【输入格式】

一行两个正整数,分别表示x和k。

【输出格式】

一行,包含k个正整数,从大到小依次输出x的k个幂次数。

【样例输入1】

1350 2

【样例输出1】

27 25

【样例输入2】

18 3

【样例输出2】

9 2 1

【样例解释1】

1350的所有幂次数为27,25,2,1。最大的两个数为27,25

【样例解释2】

18的所有幂次数为9,2,1。最大的三个数为9,2,1

【数据范围】

令 f(x)为正整数x的幂次数的个数。

对于10%的数据,x可以表示为a^b(其中a为质数,b为自然数)

对于50%的数据, 2≤x<10^6

对于100%的数据, 2≤x<10^12,1≤k≤f(x)。