Pagini recente » Cod sursa (job #1896471) | Cod sursa (job #65030) | Cod sursa (job #3031947) | Cod sursa (job #316699) | Cod sursa (job #1341412)
#include <iostream>
#include <fstream>
#include <cstio>
using namespace std;
long long n;
int st[50],k,v[50],r,w[50],o,q,p=1,c;
void memo()
{int i;
o=k;
for(i=1;i<=k; i++)
w[i]=v[st[i]];
}
int valid()
{int i;
p=1;
for(i=1;i<=k; i++)
{p*=v[st[i]];
if(p>n)
return 0;
}
return 1;
}
void backc()
{
k=1;
while(k>=1)
{
if(st[k]<r)
{
st[k]++;
if(valid()==1)
{
if(p==n)
{
c++;
if(c==q)
memo();
}
else
{
k++;
st[k]=st[k-1]-1;
}
}
else
k--;
}
else
k--;
}
}
int main()
{int i;
ifstream f("desc.in");
FILE *g;
g=fopen("desc.out","w");
f>>n>>q;
for(i=2; i<=n/2+1; i++)
if(n%i==0)
v[++r]=i;
backc();
c++;
fprintf(g,"%d\n",c);
if(q==c)
fprintf(g,"%d",n);
else
for(i=1;i<=o; i++)
fprintf(g,"%d ",w[i]);
return 0;
}