Pagini recente » Cod sursa (job #2485384) | Cod sursa (job #1909310) | Cod sursa (job #488118) | Cod sursa (job #1511371) | Cod sursa (job #1039494)
#include <fstream>
#include <algorithm>
#include <map>
using namespace std ;
map < long long ,int > HASH;
const char In[]="desc.in";
const char Out[]="desc.out";
long long n,dp[4100][4100] , v[4100];
int k, nr;
inline void Read()
{
ifstream f(In);
f >> n >> k;
f.close();
}
inline void Desc(const long long n)
{
long long i;
for(i = 1;1LL*i*i<n; ++i)
if(n%i==0)
{
v[++v[0]] = i;
v[++v[0]] = n/i;
}
if(1LL*i*i==n)
v[++v[0]] = i;
}
ofstream g(Out);
inline void Solve()
{
int i , j;
nr = v[0];
sort(v+1,v+nr+1);
for(i = 1 ;i <= nr; ++i)
HASH[v[i]] = i;
for(i = 2;i <= nr;++i)
{
dp[i][i] = 1;
for(j = i-1; j > 1;--j)
{
dp[i][j] = dp[i][j+1];
if(v[i]%v[j]==0)
dp[i][j]+=dp[HASH[v[i]/v[j]]][j];
}
}
g<<dp[nr][2]<<"\n";
}
int main()
{
Read();
Desc(n);
Solve();
return 0;
}