Pagini recente » Cod sursa (job #657335) | Cod sursa (job #2510873) | Cod sursa (job #387738) | Cod sursa (job #2528580) | Cod sursa (job #344985)
Cod sursa(job #344985)
#include <algorithm>
#include <stdio.h>
#include <vector>
#include <map>
#define ll long long
#define pb push_back
#define mp make_pair
using namespace std;
ll n, k, rez;
vector <ll> vctDiv;
map <pair <ll, ll>, ll> sol;
inline ll solFct(ll nr, int st)
{
if (nr == 1)
return 1;
ll solT = 0;
for (int i = st; i < vctDiv.size(); i++)
if (nr % vctDiv[i] == 0)
solT += solFct(nr / vctDiv[i], i);
return solT;
}
int main()
{
freopen("desc.in", "r", stdin);
freopen("desc.out", "w", stdout);
scanf("%d %d", &n, &k);
vctDiv.pb(n);
for (int i = 2; i * i <= n; i++)
if (n % i == 0)
{
vctDiv.pb(i);
if (i * i != n)
vctDiv.pb(n / i);
}
sort(vctDiv.begin(), vctDiv.end());
for (int i = 0; i < vctDiv.size(); i++)
rez += solFct(n / vctDiv[i], i);
printf("%d\n", rez);
fclose(stdin);
fclose(stdout);
return 0;
}