AcWing 870. 约数个数
原题链接
简单
#include <iostream>
#include <map>
using namespace std;
map<int, int> composition;
void decomposition(int x)
{
for (int i = 2; i <= x / i; i ++)
{
if (x % i == 0 && map.find(i) == map.end())
composition[i] = 0;
while(x % i == 0)
{
composition[i] ++;
x /= i;
}
}
if (x)
composition[x] = 1;
}
int main()
{
int n;
cin >>n;
while(n --)
{
int x;
cin >> x;
decomposition(x);
}
int res = 1;
int mod = 1e9+7;
for (auto iter : composition)
{
res = (res * (iter.second + 1)) % mod;
}
cout << res;
}