bzoj 2705: [SDOI2012]Longge的问题
2016-03-22 05:43
302 查看
#include<cstdio> #include<iostream> #include<cmath> #define ll long long ll n,m,ans; ll phi(ll a1) { ll sum=a1,m=sqrt(a1); for(ll i=2;i<=m;i++) if(a1%i==0&&a1) { sum=sum/i*(i-1); for(;a1%i==0;a1/=i); } if(a1>1) sum=sum/a1*(a1-1); return sum; } int main() { scanf("%lld",&n); m=sqrt(n); for(ll i=1;i<=m;i++) if(n%i==0) { ans+=i*phi(n/i); if(n/i!=i) ans+=n/i*phi(i); } printf("%lld\n",ans); return 0; }
题目中要求出∑gcd(i,N)(1<=i<=N)。
枚举n的约数k,令s(k)为满足gcd(m,n)=k,(1<=m<=n)m的个数,则ans=sigma(k*s(k)) (k为n的约数)
因为gcd(m,n)=k,所以gcd(m/k,n/k)=1,于是s(k)=euler(n/k)
phi可以在根号的时间内求出
相关文章推荐
- bzoj 2661: [BeiJing wc2012]连连看
- bzoj 2654: tree
- oracle11g 云迁移报错 ORA-01180: can not create datafile 1
- STM32 IAP 在线升级
- 再次推荐一款逼真的HTML5下雪效果
- [R] ADMM for lasso
- 我与小娜(40):中国人工智能学会访问记
- WM_NCHITTEST有21种取值,常用的有HTCAPTION,HTCLIENT,HTBORDER,HTSYSMENU,HTTRANSPARENT,罗列所有VCL里对其使用的情况
- CABAC
- Win10 安装SDK解决方法
- 转一个ndk1.5.1当前最新版ndk配置方法,还未实验
- 24. Swap Nodes in Pairs
- 【LeetCode】108. Convert Sorted Array to Binary Search Tree
- TControl.Perform是有返回值的,且看VCL框架如何利用消息的返回值(全部例子都在这里)
- CentOS6.5把MySQL从5.1升级到5.6后,MySQL不能启动
- 触摸某一区域点击事件
- Nginx TCP监控和自动限流
- 不出五十年清朝必亡——曾国藩和心腹幕僚赵烈文秘谈录
- 欢迎使用CSDN-markdown编辑器
- centos绑定多个域名