题目连接

/*
求所有小于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互质的数的和的更多相关文章

  1. hdu-4135 Co-prime---容斥定理经典&&求1-m中与n互质的数目

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4135 题目大意: 求区间[a, b]中与N互质的数目. 解题思路: 首先对n求出所有素因子. 对于区 ...

  2. poj2773求第K个与m互质的数

    //半年前做的,如今回顾一下,还是有所收货的,数的唯一分解,.简单题. #include<iostream> #include<cstring> using namespace ...

  3. 一个简单的公式——求小于N且与N互质的数的和

    首先看一个简单的东西. 若$gcd(i,n)=1$,则有$gcd(n-i,n)=1$ 于是在小于$n$且与$n$互质的数中,$i$与$n-i$总是成对存在,且相加等于$n$. 考虑$i=n-i$的特殊 ...

  4. 欧拉函数(小于或等于n的数中与n互质的数的数目)&& 欧拉函数线性筛法

    [欧拉函数] 在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler’s totient function.φ函数.欧拉商数等. 例如φ( ...

  5. UVA 12493 Stars (欧拉函数--求1~n与n互质的个数)

    pid=26358">https://uva.onlinejudge.org/index.phpoption=com_onlinejudge&Itemid=8&cate ...

  6. 求1-n 中与 m 互质的素因子 (容斥原理)

    ll prime[100]; ll cnt; void getprime(){ cnt = 0; ll num = m; for(ll i = 2; i*i <= m; i++){ // sqr ...

  7. 求小于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/ ...

  8. 欧拉函数求在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; } ...

  9. BOJ 2773 第K个与m互质的数

    算法是关键,得出1-m内的互质数,然后类推计算即可.下面有详细说明. #include<iostream> #include<cstring> using namespace ...

随机推荐

  1. js禁止浏览器后退,防止重复支付

    <script language="JavaScript"> javascript:window.history.forward(1);</script>

  2. tftp常用命令

    root@hbg:/# tftpBusyBox v1.22.1 (2015-12-18 15:33:52 CST) multi-call binary. Usage: tftp [OPTIONS] H ...

  3. mysql教程

    mysql教程 2016年5月14日 0:09 1.查看mysql帮助信息 C:\Users\zhangcunli>mysql --help mysql  Ver 14.14 Distrib 5 ...

  4. Gitlab 安装配置

    Gitlab 很好的替代Github,可以安装到公司的内网服务器 进行管理 ,可以分布式的管理,集中的管理 下面介绍安装这个软件的步骤 其实安装很简单的  按照官网可以安装 https://about ...

  5. Sqoop 将hdfs上的文件导入到oracle中,关于date类型的问题

    近期的项目中,需要将hadoop运行完成的结果(存在于hdfs上)导入到oracle中,但是在用sqoop导入hdfs中的日期字段'2016-03-01'时,sqoop报错,说date类型必须为'yy ...

  6. javascript 事件响应

    1.基本事件 2.点击事件 <html> <head> <script type="text/javascript"> function add ...

  7. ZOJ 1967 POJ 2570 Fiber Network

    枚举起点和公司,每次用DFS跑一遍图,预处理出所有的答案.询问的时候很快就能得到答案. #include<cstdio> #include<cmath> #include< ...

  8. ios用xib实现三等分以及多等分思路

    Auto Layout 的本质原理 Auto Layout 的本质是用一些约束条件对元素进行约束,从而让他们显示在我们想让他们显示的地方. 约束主要分为以下几种(欢迎补充): 相对于父 view 的约 ...

  9. 自定义VBS脚本(统计在指定文件中搜索字符串出现的次数)

    '=========================================================================='' VBScript Source File - ...

  10. Redhat_AS5下安装MySQL5.0总结

    一.引言 使用Linux也有几年时间了,由于公司要做radius服务器用用到MySQL.从网上找了些资料. 二.安装Mysql 1.下载MySQL的安装文件 安装MySQL需要下面两个文件: MySQ ...