题目链接:https://codeforces.com/contest/1203/problem/C
题目大意:求长度为n的序列的所有数的不同公因数个数
即求序列所有数字的最大公因数,再对该数因数分解,个数即为题目所求
复杂度:Nlog(M)M为最大数
int gcd(int a, int b)//求两个数最大公因数
{
return b ? gcd(b, a % b) : a;
}
void divide(int x)//因数分解
{
for (int i = 1; i <= x / i; i++)
{
if (x % i == 0)
{
c[++cnt] = i;
if (i != x / i)
{
c[++cnt] = x / i;
}
}
}
}