您写的线筛能放上来吗? @[Boar](/user/325404)
by _998344353_ @ 2020-08-10 08:59:28
这么判复杂度不对
by _998344353_ @ 2020-08-10 09:00:07
@[ZYY12CSP](/user/299616)
```#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
const ull mod=1e9+7;
ull a[10000000],pri[10000000]={2},num=1;
bool isp[10000000];
void init(ull mx){
memset(isp,1,sizeof(isp));
for(int i=3;i<=mx;i+=2){
if(isp[i]) pri[num++]=i;
for(int j=0;j<num&&i*pri[j]<=mx;j++){
isp[i*pri[j]]=0;
if(i%pri[j]==0) break;
}
}
}
void f(ull x){
int i=0;
while(pri[i]!=x){
if(x%pri[i]==0){
x/=pri[i];
a[i]++;
}
else i++;
}
a[i]++;
}
int main(){
ull x,n,ans=1;
cin>>n;
init(n);
memset(a,0,sizeof(ull)*n);
for(ull i=2;i<=n;i++) f(i);
for(ull i=0;i<=n;i++) if(a[i]) ans=((1+2*a[i])*ans)%mod;
cout<<ans;
return 0;
}
by Boar @ 2020-08-10 22:28:09