Pagini recente » Cod sursa (job #1969961) | Cod sursa (job #1941825) | Cod sursa (job #1280692) | Cod sursa (job #1374747) | Cod sursa (job #1597146)
#include <bits/stdc++.h>
using namespace std;
int d[1009][1009];
long long n , divs[1009];
map < long long , int > w;
int k , L , i , j;
int main()
{
freopen("desc.in" , "r" , stdin);
freopen("desc.out" , "w" , stdout);
scanf("%lld" , &n);
scanf("%d" , &k);
for (i = 2 ; i * i <= n ; ++i)
if (n % i == 0)
{
divs[++L] = i;
w[i] = L;
}
for (i = 2 ; i * i < n ; ++i)
if (n % i == 0) ++L;
for (i = 2 ; i * i < n ; ++i)
if (n % i == 0)
{
w[n / i] = L;
divs[L--] = n / i;
}
for (i = 2 ; i * i < n ; ++i)
if (n % i == 0) ++L;
divs[++L] = n;
w[n] = L;
for (i = 1 ; i <= L ; ++i)
{
d[i][i] = 1;
for (j = i - 1 ; j ; --j)
{
d[i][j] = d[i][j + 1];
if (divs[i] % divs[j] == 0)
d[i][j] += d[w[divs[i] / divs[j]]][j];
}
}
printf("%d\n" , d[L][1]);
return 0;
}