关于1-n任意的gcd的和
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的和的更多相关文章
- 数字任意组合 - gcd
链接:https://www.nowcoder.com/acm/contest/160/A来源:牛客网 题目描述有一个计数器,计数器的初始值为0,每次操作你可以把计数器的值加上a1,a2,...,an ...
- ReactiveCocoa基础知识内容
本文记录一些关于学习ReactiveCocoa基础知识内容,对于ReactiveCocoa相关的概念如果不了解可以网上搜索:RACSignal有很多方法可以来订阅不同的事件类型,ReactiveCoc ...
- ReactiveCocoa v2.5 源码解析 之 架构总览
ReactiveCocoa 是一个 iOS 中的函数式响应式编程框架,它受 Functional Reactive Programming 的启发,是 Justin Spahr-Summers 和 J ...
- ReactiveCocoa_v2.5 源码解析之架构总览
ReactiveCocoa 是一个 iOS 中的函数式响应式编程框架,它受 Functional Reactive Programming 的启发,是 Justin Spahr-Summers 和 J ...
- [codeforces 804F. Fake bullions]
题目大意: 传送门. 给一个n个点的有向完全图(即任意两点有且仅有一条有向边). 每一个点上有$S_i$个人,开始时其中有些人有真金块,有些人没有金块.当时刻$i$时,若$u$到$v$有边,若$u$中 ...
- 长沙理工校赛I题题解-连续区间的最大公约数
题目来源https://www.nowcoder.com/acm/contest/96/I 解题前们需要先知道几个结论: 首先,gcd是有区单调性的: gcd(L,R)>=gcd(L,R+d) ...
- iOS ReactiveCocoa 最全常用API整理(可做为手册查询)
本文适合有一定RAC基础的童鞋做不时的查询,所以本文不做详细解释. 一.常见类 1.RACSiganl 信号类. RACEmptySignal :空信号,用来实现 RACSignal 的 +empty ...
- 题解 洛谷P2158 【[SDOI2008]仪仗队】
本文搬自本人洛谷博客 题目 本文进行了一定的更新 优化了 Markdown 中 Latex 语句的运用,加强了可读性 补充了"我们仍不曾知晓得 消失的 性质5 ",加强了推导的严谨 ...
- 积性函数初步(欧拉$\varphi$函数)
updata on 2020.4.3 添加了欧拉\(\varphi\)函数为积性函数的证明和它的计算方式 1.积性函数 设\(f(n)\)为定义在正整数上的函数,若\(f(1)=1\),且对于任意正整 ...
随机推荐
- vue-cli简介(中文翻译)
vue-cli是一个简单的vuejs脚手架命令行工具. 安装 准备:Node.js(>=4.x,推荐6.x版本),npm版本3以上和Git. $npm install -g vue-cli 使用 ...
- (整)deepin下mysql的安装与部分错误解决办法
deepin(深度)是国产Linux系统,程序员肯定要了解Linux系统啦,但是在程序安装上可能会有些不习惯,现在让我们来看看mysql在deepin上的安装过程. 1.傻瓜式命令行安装 这也是Lin ...
- 移动web开发常见的问题
1.屏幕旋转的事件和样式 事件 window.orientation,取值:正负90表示横屏模式.0和180表现为竖屏模式: window.onorientationchange = function ...
- httpclient模拟浏览器
package com.java.httpclient; import java.io.IOException; import org.apache.http.HttpEntity; import o ...
- matlab学习创建变量定义函数
定义变量a,b,c,计算输出d >> a=-3;b=2;c=5;>> d=(a^2+b)/c;>> d=(a^2+b)/c d = 2.2000 系统默认变量 a ...
- bzoj 1189: [HNOI2007]紧急疏散evacuate 分层图最大流_拆点_二分
Description 发生了火警,所有人员需要紧急疏散!假设每个房间是一个N M的矩形区域.每个格子如果是'.',那么表示这是一 块空地:如果是'X',那么表示这是一面墙,如果是'D',那么表示这是 ...
- Connection refused (SQL: select * from information_s chema.tables where table_schema = apidemo and table_name = migrations)
LARAVEL 执行: $ php artisan migrate 报错 ,把 .env文件里的 DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306 换成 ...
- Spring框架的理解
Spring 是一個开源的IOC和AOP容器框架! 具体描述为: 1.轻量级:Spring是非侵入性-基于Spring开发的应用中的对象可以不依赖API开发 2.依赖注入(DI---------dep ...
- Spring中的容器
1.Spring容器 Spring容器最基本的接口就是BeanFactory, 负责配置,创建和管理bean.我们通常不直接使用BeanFactory接口,而是使用其子接口ApplicationCon ...
- ACdream 1229 Data Transmission
Data Transmission Special JudgeTime Limit: 12000/6000MS (Java/Others)Memory Limit: 128000/64000KB (J ...