这题埃筛能过吗
查看原帖
这题埃筛能过吗
1056908
封禁用户楼主2023/12/13 15:50

RT,请大佬优化(TLE90)

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int mod=1e8+7;
int n;
ll ans=1;
bool p[100000000];
inline ll s(int x){
	register ll k=x;
	while(k*x<=n)k*=x;
	return k;
}int main(){
	memset(p,1,sizeof p);
	p[1]=0;
	cin>>n;
	for(register int i=2;i*i<=n;i++)if(p[i])for(register int j=i*i;j<=n;j+=i)p[j]=0;
	for(register int i=1;i<=n;i++)if(p[i])ans*=s(i),ans%=mod;
	cout<<ans;
	return 0;
}
2023/12/13 15:50
加载中...