zoukankan      html  css  js  c++  java
  • 【转】求小于等于N的与N互质的数的和

    问题描述:
    给出一个N,求1..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 

  • 相关阅读:
    实用 zsh 插件
    laravel 实用扩展包
    laravel Collection mapToDictionary 例子
    laravel mapSpread 例子
    mac 命令行大杂烩
    iview table中 on-view事件点击无效
    github网站打不开了
    iview table 表头样式修改
    $attrs is readonly
    iview中modal如何修改标题颜色
  • 原文地址:https://www.cnblogs.com/cchun/p/2593980.html
Copyright © 2011-2022 走看看