| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38625 | Chasing2575 | 【J】T2 | C++ | 通过 | 100 | 44 MS | 15064 KB | 753 | 2025-10-18 13:47:25 |
#include <bits/stdc++.h> using namespace std; long long n,dot[700005],cnt=1; bool prime[10000007]; void init(){ int x=2; while(x<=n){ if(prime[x]){ x++; continue; } dot[cnt++]=x; for(int i=2;i*x<=n;i++){ prime[i*x]=true; } x++; } } int main(){ // freopen("min.in","r",stdin); // freopen("min.out","w",stdout); cin>>n; if(n<=4){ cout<<n-1; return 0; } prime[1]=prime[0]=true; init(); long long ans=2,flag=2; cnt--; for(int i=3;i<=cnt;i++){ if((dot[i]-dot[i-1])==2) ans+=2; else ans+=((dot[i]-dot[i-1])/2)*((dot[i]-dot[i-1])/2+1); } for(int i=dot[cnt]+1;i<=n;i++) ans+=i-dot[cnt]; cout<<ans; // fclose(stdin); // fclose(stdout); return 0; } /* 9589336 65829650 */