Pagini recente » Cod sursa (job #2168085) | Cod sursa (job #1329843) | Cod sursa (job #1567714) | Cod sursa (job #78872) | Cod sursa (job #2254087)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll divs[7000], p, n, test;
int pd[4200][4200];
unordered_map<ll, int> m;
int main()
{
ifstream fin ("desc.in");
ofstream fout ("desc.out");
fin >> n >> test;
for (int i = 2; i*i <= n; ++i) //maybe treat divs[I] = n separately, also case where n is prime
if(n%i == 0){
divs[++p] = i;
if(i*i != n)
divs[++p] = n/i;
}
sort(divs+1, divs+p+1);
divs[++p] = n;
for (int i = 1; i <= p; ++i)
m[divs[i]] = i;
for (int i = 1; i <= p; ++i){
pd[i][i] = 1;
for (int j = i-1; j >= 1; --j){
pd[i][j] = pd[i][j+1];
if(divs[i]%divs[j] == 0)
pd[i][j] += pd[m[divs[i]/divs[j]]][j];
}
}
fout << pd[p][1] << "\n";
ll left = n, M = 2;
return 0;
}