gcd和

题目

GCD sum

公约数的和

大意是让你求1-n任意两个数的gcd的和之类的。

解法

显然你需要枚举对吧,不然你怎么可能求出gcd呢?

其次我们需要一些数学推理

令F(n)表示\(\sum_{i=1}^{n}gcd(1,n)\)

则我们只需要求出\(2\times \sum_{i=1}^{n}F(i) + \sum_{i=1}^{n}i\)对吧。

那么成立的充要条件是\(gcd(a/d,b/d)=1\),则我们就知道\(gcd(a/d,b/d)*d=gcd(a,b)\)

那么所以我们需要求出有多少个1-n/d的互质的数,显然这就是欧拉函数

所以我们就有了如下两道题目代码

//code 1
#include<bits/stdc++.h>
#define int long long //还是自觉换long long 更好吧
using namespace std;
const int maxn=100000+5;
int phi[maxn];
int f[maxn];
int s[maxn];
void get(int n) {
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);
}
}
}
}
main() {
int n;
cin>>n;
get(n);
for(int i=1; i<=n; i++)
for(int j=i*2; j<=n; j+=i)
f[j]+=i*phi[j/i];
for(int i=1; i<=n; i++) s[i]=s[i-1]+f[i];
cout<<s[n]*2+(1+n)*n/2;
return 0;
}
//code 2
#include<bits/stdc++.h>
#define int long long //还是自觉换long long 更好吧
using namespace std;
const int maxn=2000000+5;
int phi[maxn];
int f[maxn];
int s[maxn];
void get(int n) {
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);
}
}
}
}
main() {
int n;
cin>>n;
get(n);
for(int i=1; i<=n; i++)
for(int j=i*2; j<=n; j+=i)
f[j]+=i*phi[j/i];
for(int i=1; i<=n; i++) s[i]=s[i-1]+f[i];
cout<<s[n];
return 0;
}

关于1-n任意的gcd的和的更多相关文章

  1. 数字任意组合 - gcd

    链接:https://www.nowcoder.com/acm/contest/160/A来源:牛客网 题目描述有一个计数器,计数器的初始值为0,每次操作你可以把计数器的值加上a1,a2,...,an ...

  2. ReactiveCocoa基础知识内容

    本文记录一些关于学习ReactiveCocoa基础知识内容,对于ReactiveCocoa相关的概念如果不了解可以网上搜索:RACSignal有很多方法可以来订阅不同的事件类型,ReactiveCoc ...

  3. ReactiveCocoa v2.5 源码解析 之 架构总览

    ReactiveCocoa 是一个 iOS 中的函数式响应式编程框架,它受 Functional Reactive Programming 的启发,是 Justin Spahr-Summers 和 J ...

  4. ReactiveCocoa_v2.5 源码解析之架构总览

    ReactiveCocoa 是一个 iOS 中的函数式响应式编程框架,它受 Functional Reactive Programming 的启发,是 Justin Spahr-Summers 和 J ...

  5. [codeforces 804F. Fake bullions]

    题目大意: 传送门. 给一个n个点的有向完全图(即任意两点有且仅有一条有向边). 每一个点上有$S_i$个人,开始时其中有些人有真金块,有些人没有金块.当时刻$i$时,若$u$到$v$有边,若$u$中 ...

  6. 长沙理工校赛I题题解-连续区间的最大公约数

    题目来源https://www.nowcoder.com/acm/contest/96/I 解题前们需要先知道几个结论: 首先,gcd是有区单调性的: gcd(L,R)>=gcd(L,R+d)  ...

  7. iOS ReactiveCocoa 最全常用API整理(可做为手册查询)

    本文适合有一定RAC基础的童鞋做不时的查询,所以本文不做详细解释. 一.常见类 1.RACSiganl 信号类. RACEmptySignal :空信号,用来实现 RACSignal 的 +empty ...

  8. 题解 洛谷P2158 【[SDOI2008]仪仗队】

    本文搬自本人洛谷博客 题目 本文进行了一定的更新 优化了 Markdown 中 Latex 语句的运用,加强了可读性 补充了"我们仍不曾知晓得 消失的 性质5 ",加强了推导的严谨 ...

  9. 积性函数初步(欧拉$\varphi$函数)

    updata on 2020.4.3 添加了欧拉\(\varphi\)函数为积性函数的证明和它的计算方式 1.积性函数 设\(f(n)\)为定义在正整数上的函数,若\(f(1)=1\),且对于任意正整 ...

随机推荐

  1. [Offer收割]编程练习赛37

    热门号码 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<vector> ...

  2. 获取URL路径参数getUrlParams

    function getUrlParams(){ var reg = new RegExp("(^|&)" + name + "=([^&]*)(& ...

  3. (转)50 个 jQuery 小技巧

    1. 如何修改jQuery默认编码(例如默认UTF-8改成改GB2312): $.ajaxSetup({ajaxSettings:{ contentType:"application/x-w ...

  4. JDK和Cglib实现动态代理实例及优缺点分析

    Spring AOP使用的核心技术是动态代理,说到动态代理就不得不和设计模式中的代理模式联系起来,通过代理模式我们可以对目标类进行功能增强,在某个方法的执行前后增加一些操作,例如计算方法执行效率.打印 ...

  5. 【MFC】如何在mfc窗口程序中调用控制台

    1.工程名为Zero,在CZeroDlg.cpp中加入头文件 #include “conio.h” : 2.在CZeroDlg::OnInitDialog() {…}函数中加入AllocConsole ...

  6. Goldengate升级之目标端(replicat端)升级

    转自红黑联盟Goldengate升级之目标端(replicat端升级 要升级replicat端的原因为:目标端OGG软件版本与源端OGG软件版本不同,在实际生产应用中,经常发现replicat端事务丢 ...

  7. FAQ: SBS 2011. The Windows SBS Manager service terminated unexpectedly

    Symptoms The Windows SBS Manager service is stopped with EventID 7034 every half an hour on SBS 2011 ...

  8. MongoDB_可视化工具Robo 3T

    Robo 3T可以对MongoDB进行可视化操作. Robo 3T安装 官网下载地址:https://robomongo.org/ 进入官网,点击下载,Studio 3T功能更全面,基础功能是免费的, ...

  9. codeforces 789 B. Masha and geometric

    链接 B. Masha and geometric depression 题意 给你一个等比数列的首项和公比q,然后给出一个上限l,m个数字,在这个等比数列里,小于l且没有在m个数字里面出现过的可以写 ...

  10. FastFDS常用命令

    1.启停fastdfs相关服务 #start fastdfs  启动服务 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart /usr/loca ...