nyoj--1007 GCD
题意:求满足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相关推荐
- 欧拉函数和最大公约数的组合应用
这种问题一般都是给出限制条件:给你一个数N(N一般很大),使得在1~N之间能够找到X使得X满足gcd( X , N ) >= M,然后求解相关的问题. 分析:这是一种统计类 ...
- NYOJ 762 第k个互质数(二分 + 容斥)
第k个互质数 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 两个数的a,b的gcd为1,即a,b互质,现在给你一个数m,你知道与它互质的第k个数是多少吗?与m互质的数按 ...
- 1007 Maximum Subsequence Sum
1007 Maximum Subsequence Sum (25 分) Given a sequence of K integers { N1, N2, ..., NK }. A c ...
- CF803C Maximal GCD
洛谷 CF 分析 考虑从 \(k\) 个数的 \(gcd\) 入手. 设他们的 \(gcd\) 为 \(d\) .则有 \(d|n\) ,那么这 \(k\) 个数都除以 \(d\) 剩下的和即为 \( ...
- 数论(一)——素数,GCD,LCM
这是一个数论系列:) 一.素数 ×费马小定理 Theorem: 设 p 是一个素数,a 是一个整数且不是 p 的倍数,那么 很遗憾,费马小定理的逆定理是不成立的.对 a = 2,满足的非素数 n 是存 ...
- [CQOI2014]数三角形 组合数 + 容斥 + gcd
推导过程 : 组合数+容斥原理+gcd 正确做法是暴力的一种优化,ans=所有情况 - 平行坐标轴的三点共线 - 斜线三点共线 如果快速求斜线三点共线: 首先要知道一个结论,对于点(a,b) (x,y ...
- iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(下)
2017-07-08 remember17 Cocoa开发者社区 7NSOperation的理解与使用 No.1:NSOperation简介 NSOperation是基于GCD之上的更高一层封装,NS ...
- iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(上)
2017-07-08 remember17 Cocoa开发者社区 目的 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述. 多线程的基本概念 线程的状态与生命周期 ...
- GCD 容易让人迷惑的几个小问题
来源:涂耀辉 链接:http://www.jianshu.com/p/ff444d664e51 写在开头: 本文旨在阐述一些大家容易产生迷惑的GCD相关内容,如果是需要了解一些GCD概念或者基础用法, ...
- hdu-3071 Gcd Lcm game---质因数分解+状态压缩+线段树
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3071 题目大意: 给定一个长度为n的序列m次操作,操作的种类一共有三种 查询 L :查询一个区间的所 ...
最新文章
- 人脑启发AI设计:让神经网络统一翻译语音和文本
- http、https比较
- spring 基本配置学习
- php编程查错,盘点PHP编程常见失误
- bert中文预训练模型_[中文医疗预训练模型] MC-BERT
- shell中的各种括号的使用方法
- iOS6 自动布局 入门–Auto Layout(转)
- springMVC3学习(四)--訪问静态文件如js,jpg,css
- Alamofire4.x开源代码分析(三)文件上传下载
- 华为发布MetaAAU 能耗降低30% 性能节能双提升
- java正则表达式去除空格_去掉字符串前后所有空格的正则表达式
- 推荐一本学习Groovy的书籍Groovy程序设计!
- python phpstudy_python有没有像phpstudy那样的工具
- UKIEPC 2017
- web安全day47:口令、字典、crunch、cupp、hydra、MSF-psexec_psh的使用
- Linux串口驱动分析write
- DPDK DPVS 笔记 -> 基本框架整理
- Java Web应用开发实用教程_Java Web应用开发实用教程
- 杭电acm 4282 A very hard mathematic problem
- 内核获取网络设备的网桥接口