正题
大意
给出一个nn,求里面和nn互质的数的和。
解题思路
表示的就是1∼i1∼i里面和ii互质的个数。然后数字和就是。
代码
#include<cstdio>
#include<cmath>
#include<algorithm>
#define ll long long
using namespace std;
ll a,ans,n;
int main()
{scanf("%lld",&a);n=a;ans=a;for (ll i=2;i<=sqrt(a);i++)if (a%i==0){ans=ans/i*(i-1);//计算while(a%i==0) a/=i;//取出质数}if (a>1) ans=ans/a*(a-1);//处理a=2的特判printf("%lld",n*ans/2);
}