1 条题解

  • 0
    @ 2024-3-21 22:09:15
    #include <bits/stdc++.h>
    using namespace std;
    int n,x;
    map<int,int>m;
    typedef long long ll;
    const int MOD=1e9+7;
    ll ans=1,s,t;
    int main(){
    	scanf("%d",&n);
    	for (int i=1;i<=n;i++){
    		scanf("%d",&x);
    		for (int j=2;j<=sqrt(x);j++){
    			while (x%j==0){
    				m[j]++;
    				x/=j;
    			}
    		}
    		if (x>1)m[x]++;
    	}
    	for (const auto&it:m){
    		s=0;
    		t=1;
    		for (int i=0;i<=it.second;i++){
    			s=(s+t)%MOD;
    			t=(t*it.first)%MOD;
    		}
    		ans=(ans*s)%MOD;
    	}
    	printf("%d",ans);
    	return 0;
    }
    
    • 1

    信息

    ID
    1135
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    8
    已通过
    5
    上传者