给出一个N,求1…N中与N互质的数的和

∑i=1ni[gcd(i,n)==1]\sum_{i=1}^n i \qquad[gcd(i,n)==1]∑i=1n​i[gcd(i,n)==1]

反证法:gcd(n,i)=1

如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0且n%k=0

那么必须保证i%k=0。

i%k == 0 && n%k==0 那么gcd(n,i)=k,与已知条件矛盾,所以不成立。

得到结论gcd(n,i)=1 则gcd(n,n-i)=1

于是问题变的非常简单: ANS=N*phi(N)/2i,n-i总是成对出现,并且和是n

那如果n-i=i会不会重复计算呢?

分类讨论

1.如果n是奇数,那么n!=2*i,自然也不存在 n-i=i和重复计算之说

2.如果n是偶数,n=2*i成立,gcd(n,n/2)必然为n的一个因子,这个因子为1当且仅当n==2

于是对于n>2的偶数,gcd(n,n/2)=n/2

对于n==2 ans=2*1/2=1,正好也满足

所以得到最终公式: ans=N*phi(N)/2

作者:clover_hxy
来源:CSDN
原文:https://blog.csdn.net/clover_hxy/article/details/53152358
版权声明:本文为博主原创文章,转载请附上博文链接!

求1到n中与n互质的和(数论)解释及证明相关推荐

  1. 关于求1~n中与m互质的数的个数(容器原理+数论分解质因子)

    D. Count GCD 这道题严格来讲不难,a[i]与b[i+1]最大公约数为a[i+1],所以a[i]与b[i+1]必定整除a[i+1],且a[i]/a[i+1]与b[i+1]/a[i+1]互质, ...

  2. 容斥原理 —— 求1~n有多少个数与k互质(二进制算法详细解释模板)

    这里有一道经典的例题,可以看一下:点击打开链接 这里的n可能要大于k的,所以不能用欧拉函数去做. 我们首先把k分解质因数,储存到p数组中,num表示质因子的数量. void pr(int k) //求 ...

  3. 求两个数的最大公约数(互质算法)

    如何求两个数的最大公约数? 步骤如下: 先用小的一个数除大的一个数,得第一个余数: 再用第一个余数除小的一个数,得第二个余数: 再用第二个余数除第一个余数,得第三个余数: 这样逐次用后一个数去除前一个 ...

  4. 欧拉函数:求小于等于n且与n互质的数的个数

    求小于等于n且与n互质的数的个数 互质穷举法 互质:两个数互质代表两者最大公约数为1 最大公约数求法:辗转相除法,最小公倍数:较大值除以最大公约数乘以较小值 辗转相除法: 较大的数a取模较小的数b,得 ...

  5. 数论之互质与欧拉函数

    文章开始前先给大家安利我学长以前写的数论的blog:aliayc 文章目录 互质 欧拉函数 质因数分解求欧拉函数 筛法求欧拉函数 性质 积性函数 定义 性质 题目 互质 定义 ∀ a , b ∈ N ...

  6. 【数论】 质数知识总结(质数判断、筛选、质因子分解、互质)

    文章目录 一.定义 二.质数的判断 三.质数的筛选 四.质因子分解 五.互质 一.定义 质数,又称素数,若一个正整数无法被除了1和它自身以外的其它数整除,则称其为质数,否则为合数.特殊地,1既不是合数 ...

  7. c语言互质欧拉函数,互质与欧拉函数学习笔记

    互质与欧拉函数学习笔记 互质 定义: ​ \(\forall a,b\in \N\) ,若 \(gcd(a,b)=1\) ,则称 \(a,b\) 互质. 积性函数 定义: ​ 如果 \(a,b\) 互 ...

  8. 容斥原理之求区间中与某数互质的个数

    一,定义 为了计算时不重不漏,就要不断加减重复部分 观察到:即奇数长度的前面是加号,偶数长度的为减号 二,思路:我们这里可以通过求不互质的数,自然就能得出互质的数,求不互质比较简单(因为他们是目标的质 ...

  9. c语言编程矩阵主对角线相同,急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和...

    急求!c语言 求N*N矩阵中主对角线和次对角线的元素之和 來源:互聯網  2010-02-24 23:29:06  評論 分類: 電腦/網絡 >> 程序設計 >> 其他編程語言 ...

最新文章

  1. 改进张益唐证明,陶哲轩「他的证明比我还强」,这个天才青年还解决了困扰数学界近80年的「简单问题」...
  2. jsp截取字符串前几位_7. Python3轻食丨丛林里的野蛮生长:无处不在的字符串(一)
  3. 英伟达再发边缘AI计算设备:仅信用卡大小,性能比TX2强15倍
  4. python使用教程pandas-「Python」pandas入门教程
  5. 在VMware上装苹果系统后全屏
  6. Hibernate 之单向多对一映射及其衍生问题
  7. c语言程序设计第二章的答案,C语言程序设计第二章作业参考答案
  8. 如何在 .Net Core 中使用 IHostedService
  9. Linux内核协议栈 NAT性能优化之FAST NAT
  10. 杭州师范大学计算机与科学,杭州师范大学信息科学与工程学院
  11. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第1节 常用函数接口_11_常用的函数式接口_Consumer接口练习...
  12. openai-gpt_GPT-3是“人类”吗?
  13. Java8 实战系列-05-lambda 类型推断
  14. 粒子特效 代码(龙卷风)
  15. Web 中servlet连接出现404路径错误 //Servlet出现404的解决方法
  16. 最新二开微信表情包小程序+前后端 【去授权版】
  17. 杂谈---令人抓狂的数据库行级锁问题
  18. 读书笔记-大颠狂(非同寻常的大众幻想与群众性癫狂)
  19. 基于thinkjs 3.x 转发下载图片 示例
  20. JSP众筹管理系统myeclipse开发sql数据库web结构计算机java编程

热门文章

  1. 2.8.5Django --9 Django与Ajex
  2. 对谈 | 创新与进化——当开源接受SaaS
  3. 前端ui框架layui——layer弹出层-弹出框方法
  4. 梯度爆炸gradient explode和梯度消失gradient vanish
  5. [ERP]ERP项目实施过程中的致命过失
  6. vue 项目打包后 浏览器 F12 在source 下不显示 webpack 包
  7. 如何PHP给人生日祝福,送给网友的生日祝福语 朋友的祝福语
  8. 【C#】软件注册和认证
  9. AtCoder Beginner Contest 167 D Teleporter 找周期
  10. 中软国际万人基地项目落户高新区软件新城(组图)