--- title: "约数个数" created: 2025-11-28 tags: - 算法 --- # 约数个数 ## 题目 [约数个数](https://www.acwing.com/problem/content/872/) ![[image-9c14b5c1.png]] ## 思路分析 首先还是想暴力 把最后的数算出来 然后用试除法求得约数在set里 最后取出set的size就是答案 ```cpp #include using namespace std; const int mod=1e9+7; set get_divisors(int n){ set res; for(int i=1;i<=n/i;i++){ if(n%i==0){ res.insert(i); res.insert(n/i); } } return res; } int main() { int n;cin>>n; long long sum=1; while(n--){ int a;cin>>a; sum*=a; cout<<"sum "< using namespace std; const int mod=1e9+7; unordered_map Weight; int T; int main() { cin>>T; while(T--){ int n;cin>>n; for(int i=2;i<=n/i;i++){ while(n%i==0){ Weight[i]++; n/=i; } } if(n>1) Weight[n]++; } long long res=1; for(auto x:Weight){ res=res*(x.second+1)%mod; } cout<