1040 最大公约数之和
题目来源: rihkddd
基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题

 收藏
 关注

给出一个n,求1-n这n个数,同n的最大公约数的和。比如:n = 6
1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15

Input
1个数N(N <= 10^9)
Output
公约数之和
Input示例
6
Output示例
15

思路:
目的是求∑(i= 1,n) gcd( i , n );
gcd( i , n ) = x,表示x是n的因子。稍作变形gcd( i / x , n / x) = 1,
看到这个式子可以想到欧拉函数,也就是求比n/x小的与其互质的个数。
因为这些书和n/x互质,乘上x后与n的最大公约数只有x。
也就是说我们先求出每个因子,然后计算每个因子有多少贡献即可。
/** Author:  sweat123* Created Time:  2016/6/27 14:01:46* File Name: main.cpp*/
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<string>
#include<vector>
#include<cstdio>
#include<time.h>
#include<cstring>
#include<iostream>
#include<algorithm>
#define INF 1<<30
#define MOD 1000000007
#define ll long long
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define pi acos(-1.0)
using namespace std;
const int MAXN = 1000000;
int n;
ll ef(int n)
{ ll cnt = n; int i; for(i = 2; i * i <= n; i++){ if(n % i == 0) { cnt -= cnt / i;      //   (x-x/p1) *(1-1/p2)*(1-1/p3)*(1-1/p4).....while(n % i == 0) n /= i; } }if(n > 1) cnt -= cnt / n;return cnt;
} int main(){while(~scanf("%d",&n)){ll ans = 0;for(int i = 1; i <= (int)sqrt(n); i++){if(n % i == 0){ans += ef(n / i) * i;if(n / i != i){ans += ef(i) * (n / i);   }}} printf("%lld\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/sweat123/p/5620086.html

51nod 1040最大公约数和(欧拉函数)相关推荐

  1. AcWing 220. 最大公约数 (欧拉函数)

    AcWing 220. 最大公约数 题意 给一个整数 n(1≤n≤107)n(1\le n \le 10^7)n(1≤n≤107) ,问 1≤x,y≤n1\le x,y\le n1≤x,y≤n 且 g ...

  2. 51nod 1188 最大公约数之和 V2(欧拉函数)

    1188 最大公约数之和 V2 思路 用欧拉函数可以化简式子如下 ∑i=1n∑j=1i−1gcd(i,j)\sum_{i = 1} ^{n} \sum _{j = 1} ^{i - 1} gcd(i, ...

  3. 51nod1040 最大公约数之和,欧拉函数或积性函数

    1040 最大公约数之和 给出一个n,求1-n这n个数,同n的最大公约数的和.比如:n = 6时,1,2,3,4,5,6 同6的最大公约数分别为1,2,3,2,1,6,加在一起 = 15 看起来很简单 ...

  4. 欧拉函数和最大公约数的组合应用

    这种问题一般都是给出限制条件:给你一个数N(N一般很大),使得在1~N之间能够找到X使得X满足gcd( X ,  N  ) >= M,然后求解相关的问题.          分析:这是一种统计类 ...

  5. 数论 GCD 最大公约数 欧拉函数经典题 洛谷 CF1295D Same GCDs Codeforces1295D

    ​前言 两个月了,我终于更了-- 这两个月忙(chen)于(mi)内(xiang)卷(le),现在终于出新文章啦,(也算兑现了当初的出数论题文章的承诺)~ 不说废话了,今天给大家介绍一道CF/洛谷上的 ...

  6. 欧拉函数的相关应用 noj欧拉函数求和+noj 最大公约数求和

    注意求欧拉函数之和是每个因子的欧拉函数之和不是质因子.而欧拉函数的值是它本身与它的因子件事互质的关系,这样的因子有多少个.点击打开链接 #include<stdio.h> #include ...

  7. (数论)51NOD 1136 欧拉函数

    对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等.例如:φ(8) = 4(Phi( ...

  8. BZOJ 2818: Gcd区间内最大公约数 为素数的对数(欧拉函数的应用)

    传送门 2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MB Submit: 3649 Solved: 1605 [Submit][Status][Dis ...

  9. 【数学专题】约数个数与欧拉函数

    整理的算法模板合集: ACM模板 目录 一.约数个数 1. AcWing 1291. 轻拍牛头 2. AcWing 1294. 樱花 2.1 AcWing 197. 阶乘分解 3. AcWing 19 ...

最新文章

  1. matlab-向量的基本运算
  2. pycharm更改为系统python3_今天配置好python3 装好了pycharm 就新建一个django一直改不好...
  3. opencv python教程简书_Python-OpenCV —— 基本操作一网打尽
  4. luinx php木马,Linux Bash Shell 寻找PHP(网站)挂马,后门
  5. a*算法流程图_B端产品如何画好流程图?
  6. 8.Java 面试题整理(J2EE,MVC方面)
  7. lnmp mysql自动启动脚本_【转】LNMP配置开机自启动
  8. 升级到android studio 4.1后检测不到flutter、Dart插件
  9. 异常总结2013-04
  10. BestCoder Round #70
  11. word高级技能之自动生成图目录/表目录
  12. 中科院毕业去向(硕士+博士)
  13. 网络广告计费的三种形式:CPC、CPM、CPA
  14. 光猫修改配置同步到服务器,光猫—防火墙—3台服务器防火墙需要怎么配置,防火墙做二层?...
  15. schema的基本使用
  16. const int,int const,const int*,int const*,int* const有什么不一样?
  17. 中国艺术孙溟㠭篆刻作品《零落成泥碾作尘,只有香如故》
  18. 记录一个问题:$router.push在setTimeout中的使用,显示找不到push
  19. rj45管脚定义_“RJ45接口”定义标准是什么?
  20. NOI2016 day1 总(xia)结(che)

热门文章

  1. Inside C++ object Model--对象模型概述
  2. 轻轻松松,一键获取3000个外链
  3. 基于Google Reader发展起来的个性化推荐系统之三大问题
  4. javascript --- [FormData的使用] 表单元素转换成表单 对象二进制文件上传
  5. html5 --- 使用javascript脚本控制媒体播放
  6. Vue项目代码改进(五)—— 将侧边栏菜单改造为动态后,如何按需显示不同图标
  7. 开源数据库中间件-MyCa初探与分片实践
  8. Odoo (OpenERP/TinyERP)-10.0 (Debian 8)
  9. background-size
  10. zoj 3511 Cake Robbery(线段树)