【转】求小于等于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
给出一个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
相关文章推荐
- 【转AekdyCoin】求小于等于N的与N互质的数的和
- HDU5430欧拉函数求小于等于n的数中与n互质的数的数目
- 【AekdyCoin】求小于等于N的与N互质的数的和
- 【欧拉函数】(小于或等于n的数中与n互质的数的数目)
- 【转AekdyCoin】求小于等于N的与N互质的数的和
- 【数论】 求小于等于 N 的与N互质的所有数的乘积mod N
- hdoj 3501 【欧拉函数 求小于或者等于n的数中 与n互质的数总和】
- [数学知识]求小于等于a^b的与a^b互质的数的个数与和
- 小于等于n且与n互质的数的和
- 【转】求小于等于N的与N互质的数的和
- 欧拉函数,求小于等于n 的数里与 n 互质的数的个数
- SQL查询语句,怎样查询重复大于等于小于多少的数据
- CodeForces - 416A (判断大于小于等于 模拟题)
- 求最大字串 - 值小于等于给定值
- 随机生成一个小于等于N的数
- (POJ1321) 棋盘问题 <DFS ,八皇后问题的变形,皇后数目小于等于行数即有些行可以不放>
- 最大值减去最小值小于或者等于num的子数组数量
- mysql 小于等于0 不包含null
- mybatis处理xml中SQL语句的大于、小于、大于等于、小于等于
- 【模板小程序】求小于等于N范围内的质数