HDU
来源:互联网 发布:如何注册网络作家 编辑:程序博客网 时间:2024/06/05 16:05
题目:求出小于N的与N不互质的数的和。
思路:小于N的与N互质的数的和为eular(n)*n/2
代码:
#pragma comment(linker, "/STACK:1024000000,1024000000")#include<iostream>#include<algorithm>#include<ctime>#include<cstdio>#include<cmath>#include<cstring>#include<string>#include<vector>#include<map>#include<set>#include<queue>#include<stack>#include<list>#include<numeric>using namespace std;#define LL long long#define ULL unsigned long long#define INF 0x3f3f3f3f3f3f3f3f#define mm(a,b) memset(a,b,sizeof(a))#define PP puts("*********************");template<class T> T f_abs(T a){ return a > 0 ? a : -a; }template<class T> T gcd(T a, T b){ return b ? gcd(b, a%b) : a; }template<class T> T lcm(T a,T b){return a/gcd(a,b)*b;}// 0x3f3f3f3f3f3f3f3fconst LL MOD=1000000007;LL phi(LL n){ LL res=n; for(LL i=2;i*i<=n;i++) if(n%i==0){ res=res-res/i; while(n%i==0){ n/=i; } } if(n>1) res=res-res/n; return res;}int main(){ LL n; while(~scanf("%lld",&n)){ if(!n) break; LL ans=(n*(n+1)/2-n)%MOD; ans-=(phi(n)*n)/2%MOD; ans=(ans+MOD)%MOD; printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- Kettle Spoon入门教程
- easyUI中datagrid中的formatter里面向后台发送请求获取数据
- 正则表达式找程序实用例子:正则表达式匹配不报含指定字符串,匹配后面跟着指定字符串
- 单目相机的标定
- ECLIPSE中构建ALIGN内核宏
- HDU
- http协议详解(转载)
- CheckStyle 简记
- flashlight 拍照过爆
- C++常用库/Json解析库--RapidJson
- Shiro权限验证最详细的代码流转分析
- 以太网,令牌网,FDDI,ATM,WLAN的区别
- 在UMG中创建渐入式文字对话
- 排序算法之桶排序