Pagini recente » Cod sursa (job #1999667) | Cod sursa (job #1146997) | Cod sursa (job #374652) | Cod sursa (job #165711) | Cod sursa (job #571517)
Cod sursa(job #571517)
#include <fstream>
#include <algorithm>
#define DN 3005
using namespace std;
int a[DN][DN],k,d[DN];
long long n;
int main()
{
ifstream f("desc.in");
ofstream g("desc.out");
f>>n>>k;
int p=0,i,j,r;
d[0]=1;
for(i=2; i*i<n; ++i) if(0==n%i) {
d[++p]=i;
d[++p]=n/i;
}
if(i*i==n) d[++p]=i;
d[++p]=n;
sort(d+1, d+(++p));
for(i=1; i<p; ++i) a[0][i]=1;
for(i=1; i<p; ++i) {
r=0;
for(j=p-1; 0<j; --j) {
a[i][j]=a[i][j+1];
if(0==d[i]%d[j]) {
for(;d[r]<d[i]/d[j];++r);
a[i][j]+=a[r][j];
}
}
}
g<<a[p-1][1]<<'\n';
j=1;
for(i=p-1; 0<i;) {
r=p-1;
for(;j<p; ++j) if(0==d[i]%d[j]) {
for(;d[r]>d[i]/d[j];--r);
if(a[r][j]<k) k-=a[r][j];
else {
g<<d[j]<<' ';
i=r;
break;
}
}
}
return 0;
}