这里有一个很好的技巧:
for(int i = 1;i<=n;i++)
{
for(int j = i;j<=n;j+=i)
{
a[j].push_back(i);//放入因子
num[j]++;//因子个数++
}
}
如果你只需要求因子个数/因子,就可以把求因子/因子个数的代码段删掉。
时间复杂度:\(O(n \log n)\)。
这是目前最有用的技巧,已经靠这个 A 了至少 \(10\) 道题。
这里有一个很好的技巧:
for(int i = 1;i<=n;i++)
{
for(int j = i;j<=n;j+=i)
{
a[j].push_back(i);//放入因子
num[j]++;//因子个数++
}
}
如果你只需要求因子个数/因子,就可以把求因子/因子个数的代码段删掉。
时间复杂度:\(O(n \log n)\)。
这是目前最有用的技巧,已经靠这个 A 了至少 \(10\) 道题。