hdu3501】的更多相关文章

题目求小于n不与n互质的正整数的和. 一个结论是小于n与n互质的正整数和=φ(n)*n/2. 因为如果a与n互质,那么n-a也与n互质,即若gcd(a,n)=1则gcd(n-a,n)=1,反证法即可证明. 也就是说小于n与n互质的数是成对的,且它们的和是n,共有φ(n)/2对. 所以小于n与n互质的正整数和=φ(n)*n/2. #include<cstdio> #include<cstring> using namespace std; int phi(int n){ int re…
要我们求小于n并且不与n互素的数字的和, 那么可以转化为1->(n-1)的和减去小于n且与n互素的数字的和 首先,有gcd(n,i)=1, 那么gcd(n,n-i)=1, 这是因为如果a%s=0, b%s=0, 那么(a-b)%s=0 所以gcd(n,i)=1, 那么gcd(n,n-i)=1, 如果gcd(n,n-i)!=1 ,那么 gcd(n,n-(n-i))!=1,所以 如果gcd(n,i)=1,那么gcd(n,n-i)=1成立 下面设小于n且与n素数的数字的和为sum sum = a[0]…
给整数N(1 ≤ N ≤ 1000000000),求小于N的与N不互素的所有正整数的和. 思路:1.用欧拉函数求出小于N的与N互素的正整数的个数: 2.若 p 与 N 互素,则 N-p 必与 N 互素(若 N%p==0 ,则 ( N , N-p )=p): 3.据此求出 小于N的与N互素的正整数 的和,用 小于N的所有正整数 的和减去之即可. #include<iostream> #include<cstdio> using namespace std; long long n,s…
题目传送门 Calculation 2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6114    Accepted Submission(s): 2499 Problem Description Given a positive integer N, your task is to calculate the sum of the…
https://vjudge.net/problem/HDU-3501 不会做啊...记一下做法 做法是计算小于n且与n互质的数的和:根据如果gcd(i,n)==1,那么gcd(n-i,n)==1,对这些数两两一组分组,使得每组的和为n 后面自己去想了一下,想出了一个奇怪的做法.. 化简出来小于n且与n互质的数的和是$\sum_{d|n}\mu(d)\sum_{j=1}^{{\lfloor}\frac{n-1}{d}{\rfloor}}(dj)$ 于是暴力枚举因子,暴力根号n求莫比乌斯函数,得到…