HDU 3501 Calculation 2 (欧拉函数)
来源:互联网 发布:2017金英杰免费网络课 编辑:程序博客网 时间:2024/04/30 18:30
C - Calculation 2Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription
Given a positive integer N, your task is to calculate the sum of the positive integers less than N which are not coprime to N. A is said to be coprime to B if A, B share no common positive divisors except 1.Input
For each test case, there is a line containing a positive integer N(1 ≤ N ≤ 1000000000). A line containing a single 0 follows the last test case.Output
For each test case, you should print the sum module 1000000007 in a line.Sample Input
340Sample Output
02
简单思路:首先用一下欧拉函数Eluar(n)求一下1-n中与n互质的质因子的个数,然后就要用到下面简单的定理了:如果gcd(n,i)==1,那么就有gcd(n,n-i)==1;
于是题目的要求是要求小于n并且与n不互质的所有数的和,这里我们可以先求与n互质的所有数的和为sum=n*Eular(n)/2 (这里用到了上面的定理)。最后所有数的和 (n-1)*n/2 减去 sum 即可。
//User: ZXPxx//Memory: 1604 KBTime: 0 MS//Language: C++Result: Accepted#include<cstdio>const int mod=1000000007;int eular(int n){ int cnt=1,i; for(i=2;i*i<=n;i++) if(n%i==0) { cnt*=i-1; n/=i; while(n%i==0) { n/=i; cnt*=i; } } if(n>1) cnt*=(n-1); return cnt;}int main(){ __int64 n; while(~scanf("%I64d",&n),n) { __int64 ans=(n-1)*n/2; __int64 sum=n*eular(n)/2; ans-=sum; printf("%I64d\n",ans%mod); } return 0;}
0 0
- HDU 3501-Calculation 2(欧拉函数)
- HDU 3501 Calculation 2(欧拉函数)
- 【HDU 3501 Calculation 2】+ 欧拉函数
- HDU 3501 Calculation 2 (欧拉函数)
- HDU 3501 Calculation 2(欧拉函数)
- HDU 3501 Calculation 2 (欧拉函数)
- HDU 3501 Calculation 2(欧拉函数)
- HDU 3501 Calculation 2 (欧拉函数)
- hdu-Calculation 2(欧拉函数)
- HDU 3501 Calculation 2(欧拉函数的应用)
- HDU 3501 Calculation 2---欧拉函数扩展
- HDU 3501 Calculation 2 (欧拉函数应用)
- hdu 3501 Calculation 2 (欧拉函数的延伸)
- [HDU]3501 Calculation 2 [欧拉函数之求和]
- HDU -- 3501 Calculation 2 【欧拉函数性质的应用】
- 【欧拉】HDU 3501 Calculation 2
- HDU 3501 Calculation 2 (欧拉函数||容斥原理)
- HDU-#3501 Calculation 2(欧拉函数+容斥原理)
- java获取本机公网IP
- PostgreSQL Concurrency with MVCC
- 说说mysql索引
- 记录 在表中 第几次出现
- 做一个好的项目经理
- HDU 3501 Calculation 2 (欧拉函数)
- Path Sum II
- 各种拟合,一元、多元、对数、指数、单峰、自定义拟合
- hdoj2031十进制转为任意进制
- AFNetworking、MKNetworkKit和ASIHTTPRequest对比
- hd1232 畅通工程
- LeetCode题解——Remove Element
- Java集合之Stack 源码分析
- 正则<1>