看到互质要想到欧拉函数

此题有对称性
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int const N=1e5+7;
int n;
int get_phi(int n){
	int res=1;
	for(int i=2;i<=n/i;++i){
		if(n%i==0){
			res*=(i-1);
			n/=i;
			while(n%i==0) res*=i,n/=i;
		}
	}
	if(n>1) res*=(n-1);
	return res;
}
int main(){
	cin >> n;
	int ans=0;
	if(n==1){
		cout << 0;return 0;
	}
	for(int i=1;i<=n-1;++i){
		ans+=get_phi(i);
		//cout << get_phi(i) << "\n";
	}
	ans <<= 1;
	ans++;
	cout << ans;
	return 0;
} 


全部评论

相关推荐

06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
每晚夜里独自颤抖:你cet6就cet6,cet4就cet4,你写个cet证书等是什么意思。专业技能快赶上项目行数,你做的这2个项目哪里能提现你有这么多技能呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务