记录编号 | 237361 | 评测结果 | AAAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | 打表 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | C++ | 运行时间 | 0.004 s | ||
提交时间 | 2016-03-17 07:13:31 | 内存使用 | 0.74 MiB | ||
#include<cstdio> #include<iostream> #include<cstring> using namespace std; const int SIZEN=50010; int cnt=0; int mu[SIZEN],prime[SIZEN]; bool co[SIZEN]; void Prime(int N) { mu[1]=1; for(int i=2;i<=N;i++) { if(!co[i]) mu[i]=-1,prime[++cnt]=i; for(int j=1;j<=cnt&&prime[j]*i<=N;j++) { co[i*prime[j]]=1; if(i%prime[j]==0) { mu[i*prime[j]]=0; break; } mu[i*prime[j]]=mu[i]*mu[prime[j]]; } } } int N; int main() { freopen("sendtable.in","r",stdin); freopen("sendtable.out","w",stdout); scanf("%d",&N); Prime(N); int ans=0; //for(int i=1;i<=N;i++) cout<<mu[i]<<endl; for(int i=1;i<=N;i++) ans+=mu[i]*(N/i)*(N/i); printf("%d",ans); return 0; }