题意:求满足i从1 ~ n,使得gcd(i,n) >=m 的i的和

题解:解决这道题我们首先要知道两点 

1、欧拉定理

我们假设gcd(n,i) = k,则gcd(n/k,i/k) = 1。即假设gcd(n/k, x ) = 1,则gcd(n,x*k) = k。gcd(n,i) = k,k的取值是确定的,

即n的所有因子,所以,满足gcd(n/k,x) = 1个x的个数即为最大公约数为k的个数

2、若gcd(x,n) = 1(n > 1);那么gcd(n-x,n) = 1;那么你懂得~~

注意当n为1或2的时候euler(n) = 1;要特殊处理一下

代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
#include<iostream>
using namespace std;
typedef long long LL;
const LL mod = 1000000007;
LL euler(LL x)
{LL res = x;for(LL i = 2;i <= sqrt(x);i++){if(x%i==0){while(x%i==0) x/=i;res = res/i*(i-1);}}if(x > 1) res = res / x * ( x - 1);return res;
}
void solve(LL m,LL r)
{LL res = 0;for(LL i = 1;i <= sqrt(m);i++){if(m%i==0){if(m/i!=i&&m/i>=r){if(i == 1|| i== 2)res = (res + m/i) % mod;elseres = (res + euler(i) / 2 * i * (m/i))%mod;}if(i >= r){if(m/i == 1|| m/i == 2)res = (res + i)%mod;elseres = (res + euler(m/i) / 2 * (m/i) * i)%mod;}}}printf("%lld\n",res);
}
int main()
{
//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);LL n,k;int t;scanf("%d",&t);while(t--){scanf("%lld%lld",&n,&k);solve(n,k);}
}

nyoj--1007 GCD相关推荐

  1. 欧拉函数和最大公约数的组合应用

    这种问题一般都是给出限制条件:给你一个数N(N一般很大),使得在1~N之间能够找到X使得X满足gcd( X ,  N  ) >= M,然后求解相关的问题.          分析:这是一种统计类 ...

  2. NYOJ 762 第k个互质数(二分 + 容斥)

    第k个互质数 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 两个数的a,b的gcd为1,即a,b互质,现在给你一个数m,你知道与它互质的第k个数是多少吗?与m互质的数按 ...

  3. 1007 Maximum Subsequence Sum

    1007 Maximum Subsequence Sum (25 分) Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A c ...

  4. CF803C Maximal GCD

    洛谷 CF 分析 考虑从 \(k\) 个数的 \(gcd\) 入手. 设他们的 \(gcd\) 为 \(d\) .则有 \(d|n\) ,那么这 \(k\) 个数都除以 \(d\) 剩下的和即为 \( ...

  5. 数论(一)——素数,GCD,LCM

    这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...

  6. [CQOI2014]数三角形 组合数 + 容斥 + gcd

    推导过程 : 组合数+容斥原理+gcd 正确做法是暴力的一种优化,ans=所有情况 - 平行坐标轴的三点共线 - 斜线三点共线 如果快速求斜线三点共线: 首先要知道一个结论,对于点(a,b) (x,y ...

  7. iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(下)

    2017-07-08 remember17 Cocoa开发者社区 7NSOperation的理解与使用 No.1:NSOperation简介 NSOperation是基于GCD之上的更高一层封装,NS ...

  8. iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(上)

    2017-07-08 remember17 Cocoa开发者社区 目的 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述. 多线程的基本概念 线程的状态与生命周期 ...

  9. GCD 容易让人迷惑的几个小问题

    来源:涂耀辉 链接:http://www.jianshu.com/p/ff444d664e51 写在开头: 本文旨在阐述一些大家容易产生迷惑的GCD相关内容,如果是需要了解一些GCD概念或者基础用法, ...

  10. hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...

最新文章

  1. 人脑启发AI设计:让神经网络统一翻译语音和文本
  2. http、https比较
  3. spring 基本配置学习
  4. php编程查错,盘点PHP编程常见失误
  5. bert中文预训练模型_[中文医疗预训练模型] MC-BERT
  6. shell中的各种括号的使用方法
  7. iOS6 自动布局 入门–Auto Layout(转)
  8. springMVC3学习(四)--訪问静态文件如js,jpg,css
  9. Alamofire4.x开源代码分析(三)文件上传下载
  10. 华为发布MetaAAU 能耗降低30% 性能节能双提升
  11. java正则表达式去除空格_去掉字符串前后所有空格的正则表达式
  12. 推荐一本学习Groovy的书籍Groovy程序设计!
  13. python phpstudy_python有没有像phpstudy那样的工具
  14. UKIEPC 2017
  15. web安全day47:口令、字典、crunch、cupp、hydra、MSF-psexec_psh的使用
  16. Linux串口驱动分析write
  17. DPDK DPVS 笔记 -> 基本框架整理
  18. Java Web应用开发实用教程_Java Web应用开发实用教程
  19. 杭电acm 4282 A very hard mathematic problem
  20. 内核获取网络设备的网桥接口

热门文章

  1. 重磅新书 | 《Android 全埋点解决方案》预售正式开启!
  2. 神策数据斩获三殊荣,美通社小饭桌正和岛齐认可
  3. Harbor管理docker镜像(1.7.5版本-主从复制)
  4. 【PHP】php生成一个不重复的数字(订单号、会员号)
  5. rsync 相关参数
  6. 企业信息门户与办公自动化的集成应用
  7. Silverlight MMORPG团队项目截图
  8. 在.NET 2.0正式版中开发无刷新页面
  9. 如果我要....(生活版)
  10. Optiver Career Fair