[欧拉函数] BZOJ 2226 [Spoj 5971] LCMSum
来源:互联网 发布:linux编译工具链 编辑:程序博客网 时间:2024/04/19 09:35
显然ans=Σ[d|n]d*F(n/d)/d=nΣF(d)
F(n)为n以内与n互质的数之和
F(n)=n*phi(n)/2 由互质的对称性[ gcd(i,n)==1 <=> gcd(n-i,n) ] 可知
#include<cstdio>#include<cstdlib>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;inline char nc(){static char buf[100000],*p1=buf,*p2=buf;if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) return EOF; }return *p1++;}inline void read(int &x){char c=nc(),b=1;for (;!(c>='0' && c<='9');c=nc()) if (c=='-') b=-1;for (x=0;c>='0' && c<='9';x=x*10+c-'0',c=nc()); x*=b;}const int maxn=1000000;int prime[maxn+5],num;int phi[maxn+5];int vst[maxn+5];inline void Pre(){phi[1]=1;for (int i=2;i<=maxn;i++){if (!vst[i])prime[++num]=i,phi[i]=i-1;for (int j=1;i*prime[j]<=maxn;j++){vst[i*prime[j]]=1;if (i%prime[j]==0){phi[i*prime[j]]=prime[j]*phi[i];break;}elsephi[i*prime[j]]=phi[i]*phi[prime[j]];}}}inline ll F(int i){if (i==1) return 1LL;return (ll)phi[i]*i>>1;}int main(){ll ret=0;int n,Q;freopen("t.in","r",stdin);freopen("t.out","w",stdout);Pre();read(Q);while (Q--){ret=0;read(n);int i;for (i=1;i*i<n;i++)if (n%i==0)ret+=F(i),ret+=F(n/i);if (i*i==n)ret+=F(i);printf("%lld\n",ret*n);}return 0;}
0 0
- [欧拉函数] BZOJ 2226 [Spoj 5971] LCMSum
- bzoj 2226: [Spoj 5971] LCMSum 数学+欧拉函数
- bzoj 2226: [Spoj 5971] LCMSum线性筛欧拉函数
- BZOJ 2226 Spoj 5971 LCMSum 数论
- BZOJ 2226 [Spoj 5971] LCMSum 数论
- BZOJ2226: [Spoj 5971] LCMSum
- [BZOJ 2226] LCMSum
- spoj LCMSUM
- SPOJ LCMSUM (数论)
- SPOJ LCMSUM&GCDEX
- SPOJ LCMSUM (数论)
- BZOJ 3884 (欧拉函数)
- BZOJ 2705 欧拉函数
- BZOJ 2818 欧拉函数
- BZOJ 2190 欧拉函数
- bzoj 2705 欧拉函数
- SPOJ 5971 LCM Sum 欧拉函数 (或 莫比乌斯反演?)
- 【SPOJ-GCDEX】GCD Extreme【欧拉函数】【线性筛】
- 几款常见的数学教学软件
- 键盘事件event.keyCode ,event.which ,event.charCode
- 观察者模式抽取的工具类
- 【小镇的技术天梯】lanmp服务器集群搭建(6)rsync+inotify同步主备nfs
- php 发送get,post 请求
- [欧拉函数] BZOJ 2226 [Spoj 5971] LCMSum
- WampServer修改Mysql密码的步骤
- android 控件 fragment 切换优化 混乱
- Spring配置文件中component-scan 扫描指定的包中的类上常用的注解
- ScrollView只能有一个子控件
- 使用框架结构之frameset
- JNI接口函数<一>
- 关于int、short int、long int、long long 的区别
- Android开发:高德地图通过经纬度反编译其位置名称