信息
- ID
- 3066
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 22
- 已通过
- 0
- 上传者
#include <vector>
using namespace std;
vector<int>vec;
int N,ans,aa;
int dfs(int n)
{
int a = 1;
for (int i = 2;i <= n / 2;i++)
{
if (n % i == 0)
{
vec.push_back(i);
a += dfs(n / i);
vec.pop_back();
}
}
int s = N;
for (int i = 0;i < vec.size();i++)
{
s /= vec[i];
}
vec.push_back(s);
for (int i = 1;i < vec.size();i++)
{
if (vec[i] < vec[i - 1])
{
ans++;
break;
}
}
vec.pop_back();
return a;
}
int main()
{
cin >> N;
cout << dfs(N) - ans;
}