hdu 3501 Calculation 2(<n且与n不互质的数之和)
2017-08-03 09:07
423 查看
Calculation 2
题目链接:Calculation 2题意:求小于n且与n不互质的数之和
思路:
如果GCD(n,a)=1,那么GCD(n,n-a)=1
那么对于n来说,有phi(n)个小于n且与n互质的数。由上面可知这些数之和为phi
/2*n
则小于n且与n不互质的数之和为(n-1)*(n-1+1)/2-phi
/2*n;
代码:
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; typedef long long LL; const LL mod=1e9+7; LL euler(LL n) { LL res=n; for(LL i=2; i*i<=n; ++i) { if(n%i==0) { res=res/i*(i-1); while(n%i==0) n/=i; } } if(n>1) res=res/n*(n-1); return res; } int main() { LL n; while(~scanf("%lld",&n)&&n) printf("%lld\n",(n*(n-1)/2-n*euler(n)/2)%mod); return 0; }
相关文章推荐
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- 【数论-欧拉函数】HDU 3501 Calculation 2 ( 与n不互质的数的和 )
- hdu 3501 Calculation 2 求所以小于n且与n不互质的数之和
- hdu 3501 欧拉函数(求小于n与n不互质的数之和)
- hdu 3501 欧拉的和(≤N且与N互质的数的和
- hdu 3501 Calculation 2 (欧拉函数)
- 【HDU - 3501】 Calculation 2 【欧拉求和公式】