这个题比较狗,一开始没有啥思路,但是看完题解觉得还是比较好理解的。主要思路就是需要把每个数是几个数的最大公约数求出来,然后求和就行了。蓝书P124例九

设f(n) = gcd(1,n) + gcd(2,n) + ... + gcd(n - 1, n),则本题主要求f(n),然后一点点递推。满足i为最大公约数的有phi(i)个(欧拉函数),然后直接求就行了。

代码:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdio>
using namespace std;
typedef long long ll;
ll n,s[],f[],ph[];
void euler(int x)
{
for(int i=; i<=x; i++)
ph[i]=;
ph[]=;
for(int i=; i<=x; i++)
if(!ph[i])
for(int j=i; j<=x; j+=i) //从一素数开始标记
{
if(!ph[j])
ph[j]=j;
ph[j]=ph[j]/i*(i-);
}
}//与筛法求素数有几分神似
int main()
{
scanf("%lld",&n);
euler(n);
for(int i=; i<=n; i++)
for(int j=i*; j<=n; j+=i)
f[n]+=i*ph[j/i];
s[]=f[];
for(int i=; i<=n; i++)
s[n]=s[n-]+f[n];
printf("%lld",s[n]);
return ;
}

P1390--公约数的和的更多相关文章

  1. 洛谷P1390 公约数的和 [2017年6月计划 数论12]

    P1390 公约数的和 题目描述 有一天,TIBBAR和LXL比赛谁先算出1~N这N个数中每任意两个不同的数的最大公约数的和.LXL还在敲一个复杂而冗长的程序,争取能在100s内出解.而TIBBAR则 ...

  2. [洛谷P1390]公约数的和·莫比乌斯反演

    公约数的和 传送门 分析 这道题很显然答案为 \[Ans=\sum_{i=1}^n\sum_{j=i+1}^n (i,j)\] //其中\((i,j)\)意味\(gcd(i,j)\) 这样做起来很烦, ...

  3. 洛谷 - P1390 - 公约数的和 - 莫比乌斯反演 - 欧拉函数

    https://www.luogu.org/problemnew/show/P1390 求 $\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m} gcd(i,j) $ ...

  4. 洛谷$P1390$ 公约数的和 欧拉函数

    正解:欧拉函数 解题报告: 传送门$QwQ$ 首先显然十分套路地变下形是趴 $\begin{align*}&=\sum_{i=1}^n\sum_{j=1}^n gcd(i,j)\\&= ...

  5. 【洛谷 P1390】 公约数的和 (欧拉函数)

    题目链接 做过\(n\)遍这种题了... 答案就是\(\sum_{i=1}^{n}\sum_{j=1}^{n/i}[\varphi(j)*i]\) 线筛欧拉函数求前缀和直接算就行. #include ...

  6. C语言辗转相除法求2个数的最小公约数

    辗转相除法最大的用途就是用来求两个数的最大公约数. 用(a,b)来表示a和b的最大公约数. 有定理: 已知a,b,c为正整数,若a除以b余c,则(a,b)=(b,c). (证明过程请参考其它资料) 例 ...

  7. 求两个数字的最大公约数-Python实现,三种方法效率比较,包含质数打印质数的方法

    今天面试,遇到面试官询求最大公约数.小学就学过的奥数题,居然忘了!只好回答分解质因数再求解! 回来果断复习下,常用方法辗转相除法和更相减损法,小学奥数都学过,很简单,就不细说了,忘了的话可以百度:ht ...

  8. BZOJ4488: [Jsoi2015]最大公约数

    Description 给定一个长度为 N 的正整数序列Ai对于其任意一个连续的子序列{Al,Al+1...Ar},我们定义其权值W(L,R )为其长度与序列中所有元素的最大公约数的乘积,即W(L,R ...

  9. 求N个数的最大公约数和最小公倍数(转)

    除了分解质因数,还有另一种适用于求几个较小数的最大公约数.最小公倍数的方法 下面是数学证明及算法实现 令[a1,a2,..,an] 表示a1,a2,..,an的最小公倍数,(a1,a2,..,an)表 ...

  10. 辗转相除法求最大公约数,非goto

    #include<iostream> using namespace std; //不推荐用goto,当然用它更快 //辗转相除法求两数的最大公约数 int gcd(long int a, ...

随机推荐

  1. JS——delete

    1.对象属性删除 <script> function fun(){ this.name = 'mm'; } var obj = new fun(); console.log(obj.nam ...

  2. JS——绑定自定义属性

    1.绑定自定义属性: (1)元素节点.属性或元素节点[属性]绑定的属性不会出现在标签中,setAttribute可以出现在标签中. (2)setAttribute获取不到元素节点.属性形式绑定的属性值 ...

  3. JS——dom

    节点的获取 <script> var div = document.getElementById("box");//返回指定标签 var div = document. ...

  4. CSS——继承性

    继承性发生的前提是包含(嵌套关系). 1.文字颜色可以继承 2.文字大小可以继承 3.字体可以继续 4.字体粗细可以继承 5.文字风格可以继承 6.行高可以继承 总结:文字的所有属性都可以继承. 特殊 ...

  5. SPA设计架构

    1.SPA是采用单页应用(Single Page Application)的方式来开发 2.SPA的框架有如Augular.js.Vue.js等.

  6. python2升级成python3

    系统环境centos 6.5原python版本2.6.6目标python版本3.5.11.下载python3.5wget --no-check-certificate  http://www.pyth ...

  7. java实现搜索附近地点或人的功能

    前言 当前大多数app都有查找附近的功能, 简单的有查找周围的运动场馆, 复杂的有滴滴, 摩拜查找周围的车辆. 本文主要阐述查找附近地点的一般实现. 方案比较 方案1 (性能还不错) 数据库直接存经纬 ...

  8. Unity如何播放带有alpha 通道的视频

    问题: 当使用Video Player播放带有alpha 通道的视频时带有黑色背景 解决方式: 使用文件格式为WEBM的视频,对视频文件进行的修改 在RawImage中,将New Render Tex ...

  9. [luogu4054 JSOI2009] 计数问题(2D BIT)

    传送门 Solution 2D BIT模板 Code //By Menteur_Hxy #include <cmath> #include <cstdio> #include ...

  10. collections、random、hashlib、configparser、logging模块

    collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict. ...