欧拉函数(应用)3@亿万星辰 洛谷P2158

#include <stdio.h>
int main()
{
	int N,num=0;
	scanf("%d",&N);
	if(N==1) printf("%d\n",N-1);
	if(N==2) printf("%d\n",N+1);
	if(N>=3&&N<=40000)
	{
		int m=N-1;
		while(m>=1)
		{
			int ans=m;
			N=m;
			for(int i=2;i*i<=N;i++)
			{
				if(N%i==0) 
				{
					ans*=(i-1)*1.0/i;
					while(N%i==0) N/=i*1.0;
				}
			}
			if(N>1) ans*=(N-1)*1.0/N;
			m--;
			num+=ans;
		}
		printf("%d\n",num*2+1);
	}
	return 0;
}

欧拉函数实际应用,省赛提高题,今日份学习

全部评论
点赞 回复 分享
发布于 2022-01-13 15:34

相关推荐

不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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