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