求N以内与N互质的数的和
/*
 求所有小于N且与N不互质的数的和。
 若:gcd(n,m)=1,那么gcd(n,n-m)=1;
 sum(n)=phi(n)*n/2; //sum(n)为小于n的所有与n互质的数的和
                    //phi(n)为小于n的所有与n互质的数的个数
*/
#include<cmath>
#include<cstdlib>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
typedef long long LL;
using namespace std;
LL euler(LL n)
{
    LL m=(int)sqrt(n+0.5);
    LL ans=n;
    for(LL i=2;i<=m;i++)
        if(n%i==0)
        {
            ans=ans/i*(i-1);
            while(n%i==0)
                n/=i;
        }
    if(n>1)
        ans=ans/n*(n-1);
    return ans;
}
int main ()
{
    LL n;
    while(scanf("%lld",&n),n)
    {
        LL sum=n*(n-1)>>1;
        LL t=euler(n)*n>>1;
        sum-=t;
        printf("%lld\n",sum%1000000007);
    }
}
求N以内与N互质的数的和的更多相关文章
- hdu-4135 Co-prime---容斥定理经典&&求1-m中与n互质的数目
		
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4135 题目大意: 求区间[a, b]中与N互质的数目. 解题思路: 首先对n求出所有素因子. 对于区 ...
 - poj2773求第K个与m互质的数
		
//半年前做的,如今回顾一下,还是有所收货的,数的唯一分解,.简单题. #include<iostream> #include<cstring> using namespace ...
 - 一个简单的公式——求小于N且与N互质的数的和
		
首先看一个简单的东西. 若$gcd(i,n)=1$,则有$gcd(n-i,n)=1$ 于是在小于$n$且与$n$互质的数中,$i$与$n-i$总是成对存在,且相加等于$n$. 考虑$i=n-i$的特殊 ...
 - 欧拉函数(小于或等于n的数中与n互质的数的数目)&& 欧拉函数线性筛法
		
[欧拉函数] 在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler’s totient function.φ函数.欧拉商数等. 例如φ( ...
 - UVA 12493 Stars (欧拉函数--求1~n与n互质的个数)
		
pid=26358">https://uva.onlinejudge.org/index.phpoption=com_onlinejudge&Itemid=8&cate ...
 - 求1-n 中与 m 互质的素因子 (容斥原理)
		
ll prime[100]; ll cnt; void getprime(){ cnt = 0; ll num = m; for(ll i = 2; i*i <= m; i++){ // sqr ...
 - 求小于n且与n互质的数的个数
		
int eu(int n){ int ans=n; for(int i=2;i*i<=n;i++) { if(n%i==0) { ans=ans/i*(i-1); while(n%i==0)n/ ...
 - 欧拉函数求在1-n-1与n互质的个数
		
long long phi(long long x) { long long res=x,a=x,i; ;i*i<=a;i++) { ) { res=res/i*(i-); ) a=a/i; } ...
 - BOJ 2773 第K个与m互质的数
		
算法是关键,得出1-m内的互质数,然后类推计算即可.下面有详细说明. #include<iostream> #include<cstring> using namespace ...
 
随机推荐
- Marble 添加自定义Layer
			
#include <marble/MarbleWidget.h> #include <marble/MarbleMap.h> #include <marble/Marbl ...
 - libmad编译
			
patch -Np1 -i ../libmad-0.15.1b-fixes-1.patch && sed "s@AM_CONFIG_HEADER@AC_CONFIG_HEAD ...
 - LeetCode OJ 84. Largest Rectangle in Histogram
			
Given n non-negative integers representing the histogram's bar height where the width of each bar is ...
 - Python 学习笔记8
			
在最想放弃的时候 想想美好的事情 想想明天. 今天继续看错误与异常. http://www.pythondoc.com/pythontutorial3/errors.html
 - java求阶乘
			
//阶乘 public static int rec(int n){ if(n==1){ return 1; }else{ return n*rec(n-1); } }
 - 接入支付宝出现交易订单处理失败,请稍后再试(ALI64)的错误【转】
			
接入第三方平台的时候,有时虽然按照文档来做,但是总是还会有各种各样的问题. 上次在接入支付宝的时候就碰到了交易订单处理失败,请稍后再试(ALI64)这样的错误,后来经过排查和总结,一般来讲这种问题都是 ...
 - 安装cocoapods遇到的一些问题
			
其实可以直接到https://github.com/CocoaPods/Specs上把所需的文件夹下载下来 解压后命名为master放在本地的 ~/.cocoapods/repos 下面就行 但是使 ...
 - 对SNS网站现状和未来的一些想法——以我对人人网的体验为例
			
现在对人人网越来越没有兴趣了,上面的照片.状态也越来越少了,反而是朋友圈里大家比较活跃. 我觉得在网上发内容的,至少是希望得到大家关注的,可是为什么人人越来越被大家嫌弃了呢? 人人上的消息越来越被淹没 ...
 - HDU 3416  Marriage Match IV
			
最短路+最大流 #include<cstdio> #include<cstring> #include<string> #include<cmath> ...
 - Hive基础学习
			
Hive 学习记录Hive介绍:Hive 是起源于Facebook,使得Hadoop进行SQL查询成为可能,进而使得非程序员也可以进进行对其使用:它是一种数据仓库工具,将结构化的数据文件 映射为一张数 ...