萌新初学c++,不会数学,求大哥哥大姐姐调调
查看原帖
萌新初学c++,不会数学,求大哥哥大姐姐调调
665688
ybchenyuyang楼主2023/10/1 17:56

RT,球调简单数学,马蜂良好

#include<bits/stdc++.h>
using namespace std;
#define ull unsigned long long
void openfile(){
    freopen("equation.in","r",stdin);
    freopen("equation.out","w",stdout);
}//考试时写的,忘删了
ull n,pri[1000005],vis[1000005],l,cnt;
ull c[1000005],ans=1;
const ull mod=1e9+7;
void ispri(ull x){
    for(ull i=2;i<=n;i++){
        if(vis[i]==0){
            vis[i]=i;
            pri[++l]=i;
        }
        for(ull j=1;j<=l;j++){
            if(pri[j]<=vis[i]&&pri[j]<=n/i){
                vis[i*pri[j]]=pri[j];
            }
        }
    }
}//欧拉筛
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0),cout.tie(0);
    cin>>n;
    ispri(n);
    for(ull i=2;i<=n;i++){
		cnt=1;
        if(vis[i]!=i){
            continue;
        }
		while(cnt<=n){
			cnt*=i;
            c[i]+=n/cnt;
		}
	}  
	for(ull i=2;i<=n;i++){
		ans=(ans*(2*c[i]+1))%mod;
	}//唯一分解定理
    cout<<ans<<"\n";
    return 0;
}
2023/10/1 17:56
加载中...