• 证明辗转相除法的一个方法


    其中(x,y)为x和y的最大公约数

    1. 若x=s*a,y=s*b,则(x,y)=s*(a,b)

    证明:

    对于一个质数,a拥有该质数的个数为ai,b拥有该质数的个数为bi,s拥有该质数的个数为si,而x拥有该质数的个数为ai+si,y拥有该质数的个数为bi+si。对于任何质数,都有min(si+ai,si+bi)=si+min(ai,bi),所以(x,y)=s*(a,b)。

    x=56,y=16,s=4,对于质数2,ai=1,bi=2,si=2,min(2+1,2+2)=2+min(1,2)。

     

    2. gcd(x,y)= gcd(y,x%y) (x>=y)

    证明:(其中[a]代表不大于a的最大整数)

    (x,y)=r,x=rx’,y=ry’,则(x’,y’)=1。

    y=r*y’

       x%y=x-[x/y]*y=rx’-[x/y]*ry’=r*(x’-[x/y]y’)

       (y,x%y)=r*( y’, x’-[x/y]y’)

       假设( y’, x’-[x/y]y’)不等于1,为k

    y’为k的倍数,x’-[x/y]y’为k的倍数,又因为[x/y]y’为k的倍数,则x’也为k的倍数,则(x’,y’)=k,而不等于1,所以假设不成立,( y’, x’-[x/y]y’)=1

       所以(y,x%y)=r*( y’, x’-[x/y]y’)=r=(x,y)

  • 相关阅读:
    1.tomcat部署项目的几种方式和weblogic部署方式及一点通讯
    C程序第二章节:算法
    java 代码第一天练习
    git生成公钥私钥
    sourceTree操作
    gradle插件安装
    gradle环境搭建
    bootstrap
    20170223
    大企业招聘真的是这样进行的吗?
  • 原文地址:https://www.cnblogs.com/cmyg/p/6613388.html
Copyright © 2020-2023  润新知