uva 11426 GCD Extreme (II)
来源:互联网 发布:淘宝售后客服 编辑:程序博客网 时间:2024/04/30 15:04
白书上说的很清楚了,自己在巩固一下。
gcd(x,n) = i 的充要条件是 gcd(x/i,n/i)= 1。
所以计算f[n] 的时候,当 i 为因子时,满足gcd(x,n) = i 的x的个数(x < n) 就等于 n/i 的欧拉函数。
#include <iostream>#define N 4000010#include<stdio.h>#include<cstring>using namespace std;int phi[N];long long S[N]; //要求的结果 S[n] = S[n - 1]+f[n]long long f[N]; //gcd(1,n)+gcd(2,n)+...+gcd(n-1,n)void phi_table(){ for(int i = 2;i <= N;i++) phi[i] = 0; phi[1] = 1; for(int i = 2;i <= N;i++) if(!phi[i]) for(int j = i;j <= N;j+=i) { if(!phi[j]) phi[j] = j; phi[j] = phi[j]/i*(i-1); }}void pre_produce(){ memset(f,0,sizeof f); for(int i = 1;i <= N;i++) for(int n = i*2;n <= N;n+=i) f[n]+=i*phi[n/i]; S[2] = f[2]; for(int i = 3;i <= N;i++) S[i] = S[i - 1]+f[i];}int main(){ int n; phi_table(); pre_produce(); while(scanf("%d",&n),n) { printf("%lld\n",S[n]); } return 0;}
0 0
- UVA 11426 - GCD - Extreme (II)
- UVA 11426 GCD - Extreme (II)
- uva 11426 GCD Extreme (II)
- UVA - 11426 GCD - Extreme (II)
- UVA:11426 GCD - Extreme (II)
- UVA 11426 GCD - Extreme (II)
- UVA 11426-GCD - Extreme (II)
- UVA 11426GCD - Extreme (II)
- UVA 11426 GCD - Extreme (II)
- UVA 11426 - GCD Extreme(II)
- UVA 11426 GCD Extreme (II)
- UVA 11426 - GCD - Extreme (II) (数论)
- UVA 11426 - GCD - Extreme (II) (数论)
- uva 11426 - GCD - Extreme (II)(数论)
- 【欧拉】 UVA 11426 GCD - Extreme (II)
- 欧拉 uva 11426 - GCD - Extreme (II)
- uva 11426 GCD - Extreme (II) (神奇的GCD)
- UVA 11426 - GCD - Extreme (II) GCD性质例题
- JSTL标签调用JAVA类方法
- 成都传智播客Java培训口碑做宣传
- 剑指offer 6.3 知识迁移能力3- 判断二叉树是否是平衡二叉树
- setScaleX
- spring获取webapplicationcontext,applicationcontext几种方法详解
- uva 11426 GCD Extreme (II)
- 在微信公众平台前端网页上添加分享按钮
- hdu 2187
- Fuel 30 分钟快速安装openstack
- 用高富帅描述对象构造先后
- Android应用开发SharedPreferences存储数据的使用方法
- hadoop源码[0]-初衷和各种资源
- openwrt下wifi设置详细过程
- 图片/容器/字体 透明度【opacity:0.4; filter:alpha(opacity=40)】