Pagini recente » Cod sursa (job #2099796) | Cod sursa (job #180878) | Cod sursa (job #2817533) | Cod sursa (job #2103424) | Cod sursa (job #1006786)
#include<fstream>
#include<map>
#include<algorithm>
#define MOD 10007
using namespace std;
ifstream f("desc.in");
ofstream g("desc.out");
int k,i,nr,j,d[3010][3010];
long long n,v[3010];
map<long long ,int>m;
inline void afis(int x,int y,int z)
{
if(x==1)
return ;
while(d[x][z]-d[x][z+1]<y)
{
y-=(d[x][z]-d[x][z+1]);
++z;
}
g<<v[z]<<' ';
afis(m[v[x]/v[z]],y,z);
}
int main()
{
f>>n>>k;
for(i=1;1LL*i*i<=n;++i)
if(n%i==0)
{
v[++nr]=i;
if(1LL*i*i!=n)
v[++nr]=n/i;
}
sort(v+1,v+nr+1);
for(i=1;i<=nr;++i)
m[v[i]]=i;
for(j=nr;j;--j)
{
d[j][j]=1;
for(i=j+1;i<=nr;++i)
{
d[i][j]=d[i][j+1];
if(v[i]%v[j]==0&&v[i]/v[j]>=v[j])
d[i][j]+=d[m[v[i]/v[j]]][j];
}
}
g<<d[nr][2]<<'\n';
afis(nr,k,2);
return 0;
}