Pagini recente » Cod sursa (job #705083) | Cod sursa (job #2280866) | Cod sursa (job #1465162) | Cod sursa (job #2488512) | Cod sursa (job #1893374)
#include <bits/stdc++.h>
using namespace std;
ifstream f("desc.in");
ofstream g("desc.out");
int k,i,nr,j,d[3<<10][3<<10];
long long n,v[3<<10];
unordered_map<long long,int> M;
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,v[++nr]=n/i;
if(n%i==0) v[++nr]=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;
}