Pagini recente » Cod sursa (job #198445) | Cod sursa (job #2294806) | Cod sursa (job #2607939) | Cod sursa (job #1130290) | Cod sursa (job #1039483)
#include <fstream>
#include <algorithm>
using namespace std;
long long N, K, sol, nsol;
long long dvz[2100], desc[100];
int nrdvz, nr[5010][5010];
int main()
{
int i, j, poz;
ifstream fin("desc.in");
fin >> N >> K;
fin.close();
for(long long d = 2; d * d <= N; ++d)
{
if(N % d == 0LL)
{
dvz[++nrdvz] = d;
if(d * d < N)
dvz[++nrdvz] = N / d;
}
}
dvz[++nrdvz] = N;
sort(dvz + 1, dvz + nrdvz + 1);
dvz[0] = 1LL;
for(i = 1; i <= nrdvz; ++i)
{
nr[0][i] = 1LL;
for(j = nrdvz; j > 0; --j)
{
nr[i][j] = nr[i][j + 1];
if(dvz[i] % dvz[j] == 0LL)
{
poz = lower_bound(dvz, dvz + nrdvz + 1, dvz[i] / dvz[j]) - dvz;
nr[i][j] += nr[poz][j];
}
}
}
sol = nr[nrdvz][1];
ofstream fout("desc.out");
fout << sol << "\n";
for(int i = 1; i <= nsol; ++i)
fout << desc[i] << ' ';
fout << "\n";
fout.close();
return 0;
}