#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)。