| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 38702 | hi_hi | 【J】T2 | C++ | 通过 | 100 | 145 MS | 9928 KB | 1083 | 2025-10-18 17:00:03 |
#include<bits/stdc++.h> using namespace std; long long n; bool isp[10000007]; int main(){ scanf("%lld",&n); if(n==1){ printf("0"); return 0; } long long last=0,ans=0; for(int i=2;i<=n;i++){ if(isp[i]==0){ if(last==0){ long long xu=i-1; ans+=(1+xu)*xu/2; last=i; } else if(isp[i-1]==0){ ans++; last=i; } else{ long long xu=i-last-1; if(xu%2==1){ ans+=(1+(xu+1)/2)*((xu+1)/2)/2; ans+=(1+(xu)/2)*(xu/2)/2; ans+=(xu+1)/2; } else{ ans+=(1+(xu)/2)*(xu/2); ans+=xu/2+1; } last=i; } } for(int j=i*2;j<=n;j+=i){ isp[j]=1; } } long long xu=n-last; ans+=(1+(xu))*(xu)/2; printf("%lld",ans); return 0; }