/*
给定n,对于所有的对(i,j),i<j,求出sum{gcd(i,j)}
有递推式sum[n]=sum[n-1]+f[n]
其中f[n]=gcd(1,n)+gcd(2,n)+gcd(3,n)......
那么如何求出f[n],
设满足gcd(i,n)=x的组合有g(x,n)个,那么f[n]=sum{x*g(x,n)}
对于gcd(i,n)=x,即有gcd(i/x,n/x)=1,因为将n/x看做是固定的数,那么g(x,n)=phi[n/x]
求答案时直接先求出所有答案,因为枚举n的每个因子比较麻烦,所以直接枚举x即可,
那么由上述公式可推出==>f[x*t]+=x*phi[t]
筛出phi表
*/
#include<bits/stdc++.h>
using namespace std;
#define maxn 4000005
//#define ll long long bool check[maxn+];
int phi[maxn+],prime[maxn+],tot;
void init(){
memset(check,,sizeof check);
phi[]=;tot=;
for(int i=;i<=maxn;i++){
if(check[i]==){
prime[++tot]=i;
phi[i]=i-;
}
for(int j=;j<=tot;j++){
if(i*prime[j]>maxn)break;
check[i*prime[j]]=;
if(i%prime[j]==){//prime[j]是i的因子
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
else
phi[i*prime[j]]=phi[i]*(prime[j]-);
}
}
} long long f[maxn],s[maxn];
int main(){
init();
for(int i=;i<=maxn;i++)//枚举每个因数x
for(int j=i+i;j<=maxn;j+=i)//
f[j]+=(long long)i*phi[j/i];
for(int i=;i<=maxn;i++)
s[i]=s[i-]+f[i]; int n;
while(cin>>n,n)
cout<<s[n]<<endl;
}

uva11426 欧拉函数应用,kuangbin的筛法模板的更多相关文章

  1. UVA11426 欧拉函数

    大白书P125 #include <iostream> #include <cstring> using namespace std; #define MMX 4000010 ...

  2. poj 2478 Farey Sequence(欧拉函数是基于寻求筛法素数)

    http://poj.org/problem?id=2478 求欧拉函数的模板. 初涉欧拉函数,先学一学它主要的性质. 1.欧拉函数是求小于n且和n互质(包含1)的正整数的个数. 记为φ(n). 2. ...

  3. 线性筛的同时得到欧拉函数 (KuangBin板子)

    线性筛的思想:每个被筛的数是通过它最小的质因子所筛去的. 这种思想保证了每个数只会被筛一次,从而达到线性.并且,这个思想实现起来非常巧妙(见代码注释)! 因为线性筛的操作中用到了倍数的关系去实现,因此 ...

  4. uva11426 欧拉函数应用

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=121873#problem/F 题目大意:给你一个数n,让你输出(i=1-> ...

  5. 欧拉函数 & 【POJ】2478 Farey Sequence & 【HDU】2824 The Euler function

    http://poj.org/problem?id=2478 http://acm.hdu.edu.cn/showproblem.php?pid=2824 欧拉函数模板裸题,有两种方法求出所有的欧拉函 ...

  6. 欧拉函数 &【POJ 2478】欧拉筛法

    通式: $\phi(x)=x(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3}) \cdots (1-\frac{1}{p_n})$ 若n是质数p的k ...

  7. UVA 11424 GCD - Extreme (I) (欧拉函数+筛法)

    题目:给出n,求gcd(1,2)+gcd(1,3)+gcd(2,3)+gcd(1,4)+gcd(2,4)+gcd(3,4)+...+gcd(1,n)+gcd(2,n)+...+gcd(n-1,n) 此 ...

  8. UVA 11426 GCD - Extreme (II) (欧拉函数+筛法)

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70017#problem/O 题意是给你n,求所有gcd(i , j)的和,其中 ...

  9. UVA11426 GCD - Extreme (II) (欧拉函数/莫比乌斯反演)

    UVA11426 GCD - Extreme (II) 题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 10 100 200000 0 输出样例#1: 67 13 ...

随机推荐

  1. Kotlin中,lateinit 和 lazy{} 的区别

    1.lazy{} 只能用在val类型, lateinit 只能用在var类型 如 : val name: String by lazy { "sherlbon" }lateinit ...

  2. java后台获取参数乱码

    String title = getParam("searchTitle"); title = new String(title.getBytes("iso8859-1& ...

  3. java高级 - java利用listener实现回调,即观察者模式

    https://blog.csdn.net/lin_sir6/article/details/70052954

  4. 在Linux环境下使用Apache部署ASP.NET Core

    在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Ap ...

  5. HTML5 头部【快速编写】

    <!doctype html> <html><head> <meta charset="utf-8">#设置网页文件展示时使用的字符 ...

  6. Elasticsearch 5.4.3实战--环境搭建

    1. 选择搭建的服务器信息 $ uname -a Linux SA0124 2.6.32-642.11.1.el6.x86_64 #1 SMP Fri Nov 18 19:25:05 UTC 2016 ...

  7. SQL逻辑查询语句执行顺序

    阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELE ...

  8. TCP连接的TIME_WAIT和CLOSE_WAIT 状态解说【转】

    相信很多运维工程师遇到过这样一个情形: 用户反馈网站访问巨慢, 网络延迟等问题, 然后就迫切地登录服务器,终端输入命令"netstat -anp | grep TIME_WAIT | wc ...

  9. DeprecationWarning: Calling an asynchronous function without callback is deprecated. - how to find where the “function:” is?

    I recently updated my node to 7.2.1 and noticed that there is a warning coming: (node:4346) Deprecat ...

  10. mongdb中的_id

    MongoDB中数据的基本单元称为文档(Document).文档是MongoDB的核心概念,多个键极其关联的值有序的放置在一起便是文档. 在一个特定集合内部,需要唯一的标识文档.因此MongoDB中存 ...