您的位置:首页 > 其它

【转】求小于等于N的与N互质的数的和

2010-08-04 01:07 302 查看
问题描述:

给出一个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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: