【转AekdyCoin】求小于等于N的与N互质的数的和「建议收藏」

【转AekdyCoin】求小于等于N的与N互质的数的和「建议收藏」话说我以前求这样的问题都是先求与N不互质的数,把N分解质因数,然后用容斥原理,今天看了大牛的博客,顿时觉得弱爆了。。。以下内容转大牛文章:ifgcd(n,i)=1thengcd(n,n-i)=1(1反证法:如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0而n%k=0那么必须保证i%k=0k是n的因子,如果i%k=0那么gcd(n,i)=k

大家好,又见面了,我是你们的朋友全栈君。

话说我以前求这样的问题都是先求与N不互质的数,把N分解质因数,然后用容斥原理,今天看了大牛的博客,顿时觉得弱爆了。。。

以下内容转大牛文章:

if gcd(n,i)=1 then gcd(n,n-i)=1 (1<=i<=n)

反证法:
如果存在K!=1使gcd(n,n-i)=k,那么(n-i)%k==0
而n%k=0
那么必须保证i%k=0
k是n的因子,如果i%k=0那么gcd(n,i)=k,矛盾出现;
于是问题变的非常简单
ANS=N*phi(N)/2
i,n-i总是成对出现,并且和是n
于是可能就有人问了,如果存在n-i=i那不是重复计算?
答案是不会
因为:
n=2*i->i=n/2
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)=1所以更别说什么重复计算了
对于n==2
ans=2*1/2=1
正好也满足
所以得到最终公式:
ans=N*phi(N)/2

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163380.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTTP Cookie header 中set-cookie格式

    HTTP Cookie header 中set-cookie格式

    2021年10月26日
    50
  • 交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.doc

    交通信号灯控制器C语言代码,交通信号灯控制器代码及说明.docPAGEPAGE3课程设计报告课程名称:FPGA现代数字系统设计设计名称:交通信号灯控制器姓名:***学号:2010000379专业:通信指导教师:***起止日期:2010.12.25-2011.1.9课程设计任务书设计名称:设计要求:(1)设计一个交通信号灯控制器…

    2022年9月24日
    0
  • php工厂模式

    php工厂模式定义:我们只需要提供一个创建对象实例的功能,而无需关心其具体实现,被创建实例的类型可以是接口、抽象类,也可以是具体的类。一、简单工厂模式(平时开发中基本上简单工厂模式就够用了)说明: Api:定义客户所需要的功能接口(后面具体实现的类基本上就根据这个来) Impl:具体实现Api的实现类,一般有多个, Factory:工厂,选择合适的实现类来创建Api接…

    2022年7月25日
    11
  • html div 隐藏滚动条样式,div滚动条样式隐藏与显示

    html div 隐藏滚动条样式,div滚动条样式隐藏与显示DIV滚动条样式是可以设置的,CSS滚动条同样也可以显示与隐藏,对div设置滚动条,设置其横向滚动条和纵向滚动条样式应该怎么做呢?要设置CSS滚动条样式,需要用到overflow-y和overflow-x来设置div盒子对象右侧和底部滚动条效果。同时也可以使用CSS样式设置html框架iframe的滚动条隐藏,接下来为大家介绍。常规overflow怎么设置overflow-y:scroll总是显…

    2022年7月12日
    31
  • python中的imread函数_python open函数参数

    python中的imread函数_python open函数参数cv2.imread()除了最常用的路径参数之外,第二个参数也至关重要:imread(conststring&filename,intflag=1)filename:需要打开图片的路径,可以是绝对路径或者相对路径,路径中不能出现中文。flag:图像的通道和色彩信息(默认值为1)。flag=-1,8位深度,原通道flag=0,8位深度,1通道f…

    2022年9月25日
    0
  • docker中启动mysql_win10启动项命令

    docker中启动mysql_win10启动项命令前提:已经装好了mysql镜像官方推荐必须使用密码故命令为:dockerrun–namemysql01-eMYSQL_ROOT_PASSWORD=123456-dmysql:5.5但是没有做端口开放,外界访问不到!故先停止这个容器:在启动加了端口映射的mysqldockerrun-p3306:3306–namemysql02-eMYSQL_R…

    2022年10月6日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号