比赛 20160316 评测结果 AAAAAAAAAA
题目名称 打表 最终得分 100
用户昵称 阿狸 运行时间 0.009 s
代码语言 C++ 内存使用 0.71 MiB
提交时间 2016-03-16 20:12:53
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n;
int tot,pri[50010],vis[50010],mu[50010];
void get_pri(){
	mu[1]=1;
	for(int i=2;i<=50000;++i){
		if(!vis[i])pri[++tot]=i,mu[i]=-1;
		for(int j=1;j<=tot&&i*pri[j]<=50000;++j){
			vis[i*pri[j]]=1;
			if(i%pri[j]==0){
				mu[i*pri[j]]=0;
				break;
			}
			mu[i*pri[j]]=-mu[i];
		}
	}
}
int main(){
	freopen("sendtable.in","r",stdin);
	freopen("sendtable.out","w",stdout);
	get_pri();
	cin>>n;
	int ans=0;
	for(int i=1;i<=n;++i)
		ans+=mu[i]*(n/i)*(n/i);
	cout<<ans<<endl;
	return 0;
}