【数论-欧拉函数】HDU 3501 Calculation 2 ( 与n不互质的数的和 )
来源:互联网 发布:网络上的怼是什么意思 编辑:程序博客网 时间:2024/06/07 07:19
【题目链接】click here~
【题目大意】给定整数n,求与n不互质的数的和,最后mod1e9+7
【解题思路】我们利用欧拉函数和欧几里德定理,if gcd(n,i)==1 ,则有 gcd(n,n-i)==1,可以知道 其中一个若为i则存在一个为n-i 那么二者之和为n ,这样的一共有eular(n)/2对 故与n互质的所有数的和为 n*eular(n)/2 那么与n不互质的 数就是(n)*(n-1)/2-n*eular(n)/2
【source】 2010 ACM-ICPC Multi-University Training Contest(7)——Host by HIT
代码:
#include <bits/stdc++.h>using namespace std;const int mod=1e9+7;typedef __int64 lint;lint eular(lint n){ int res=1; for(int i=2;i*i<=n;i++){ if(n%i==0){ n/=i,res*=i-1; while(n%i==0) n/=i,res*=i; } } if(n>1) res*=n-1; return res;}int main(){ lint n,res; while(scanf("%I64d",&n)!=EOF){ if(!n) break; res=((n)*(n-1)/2-n*eular(n)/2)%mod; printf("%I64d\n",res%mod); } return 0;}
0 0
- 【数论-欧拉函数】HDU 3501 Calculation 2 ( 与n不互质的数的和 )
- hdu 3501 Calculation 2(<n且与n不互质的数之和)
- hdu 3501 数论 与n不互质的数的和
- HDU 3501 Calculation 2(欧拉函数的应用)
- hdu 3501 Calculation 2 (欧拉函数的延伸)
- HDU -- 3501 Calculation 2 【欧拉函数性质的应用】
- hdu 3501 欧拉函数(求小于n与n不互质的数之和)
- 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(欧拉函数)
- HDU 3501 Calculation 2 (欧拉函数)
- Calculation 2 欧拉函数的应用
- android studio下ndk开发
- GOF23设计模式之策略模式与实现
- HTML缓存思路探究(版本一)
- Google搜索技巧
- zoj1334Basically Speaking
- 【数论-欧拉函数】HDU 3501 Calculation 2 ( 与n不互质的数的和 )
- 第42课时,自测
- C文件读写操作
- java进程间通信
- 最长回文子串算法入门经典
- 回文数
- PHP中的超全局变量
- hdoj.1503 Advanced Fruits【最长公共子序列】 2015/04/15
- How should one read a book?