【数论】P1029 最大公约数和最小公倍数问题
题目链接
思路
如果有两个数a和b,他们的gcd(a,b)和lcm(a,b)的乘积就等于ab。
也就是:
ab=gcd(a,b)*lcm(a,b)
那么,接下来我们需要关注一下数据范围:2≤x0<=100000,2≤y0<=1000000
如果暴力枚举x0和y0,那么你就咕咕咕了。
然而,y0-x0的值是很小的,我们就会想,如果枚举y0-x0这个区间,会不会方便些呢?当然,很显然的是这个区间就是第一个数a。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<string>
#include<cstring>
#define ll long long int
using namespace std;
const int maxn=999999999;
const int minn=-999999999;
inline int read() {
char c = getchar(); int x = 0, f = 1;
while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
int a,b;
int ans=0;
int gcd(int x,int y) {
if(x%y==0)return y;
return gcd(y,x%y);
}
int main() {
scanf("%d %d",&a,&b);
for(int i=a; i<=b; i++) {
if(a*b%i==0) {
int j=0;
j=a*b/i;
if(gcd(i,j)==a)ans++;
}
}
printf("%d\n",ans);
return 0;
}
【数论】P1029 最大公约数和最小公倍数问题的更多相关文章
- 洛谷P1029 最大公约数和最小公倍数问题 [2017年6月计划 数论02]
P1029 最大公约数和最小公倍数问题 题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1 ...
- [洛谷P1029]最大公约数与最小公倍数问题 题解(辗转相除法求GCD)
[洛谷P1029]最大公约数与最小公倍数问题 Description 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P, ...
- 洛谷——P1029 最大公约数和最小公倍数问题
P1029 最大公约数和最小公倍数问题 题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1 ...
- P1029最大公约数和最小公倍数
P1029最大公约数和最小公倍数 #include <iostream> #include <cmath> #include <algorithm> #define ...
- 洛谷P1029 最大公约数和最小公倍数问题 题解
题目链接:https://www.luogu.com.cn/problem/P1029 题目描述 输入 \(2\) 个正整数 \(x_0,y_0(2 \le x_0 \lt 100000,2 \le ...
- P1029 最大公约数和最小公倍数问题(思维题)
题目描述 输入22个正整数x_0,y_0(2 \le x_0<100000,2 \le y_0<=1000000)x0,y0(2≤x0<100000,2≤y0<=100 ...
- 洛谷 P1029 最大公约数和最小公倍数问题 Label:Water&&非学习区警告
题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为 ...
- luogu P1029 最大公约数和最小公倍数问题
https://www.luogu.org/problem/show?pid=1029 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出 ...
- 洛谷P1029 最大公约数和最小公倍数问题
题目描述 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整数 2.要求P,Q以x0为 ...
随机推荐
- rsync 使用
rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件. rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分, ...
- yum安装k8s集群
k8s的安装有多种方式,如yum安装,kubeadm安装,二进制安装等.本文是入门系列,只是为了快速了解k8s的原理和工作过程,对k8s有一个快速的了解,这里直接采用yum安装 的1.5.2为案例进行 ...
- Spring Boot 入门 - 目录
pring Boot 入门 - 进阶篇(3)- 定时任务(@Scheduled) 主要用于定时发送邮件.夜间自动维护等. (1)开启定时任务功能 @Configuration @EnableSched ...
- java之servlet之文件下载
1.在页面中,可以直接通过超链接来下载: a) 如果浏览器能够打开该文件,那么直接在浏览器中显示---不是想要的效果 b) 任何人都能下载,不能进行权限控制 2.通过servlet来进行下载,在ser ...
- Java Swing 资料(转载学习)
Swing图像界面简介:https://blog.csdn.net/xietansheng/article/details/72814531 Swing实用经验总结篇:https://blog.csd ...
- DBCP数据库连接池初探
1. 概述 数据库连接是很“宝贵的”,如果每次获取Connection都去创建数据库连接,使用之后就断开,再次使用又重新创建,程序效率是很低的.因为Socket连接的建立很消耗资源. 所以需要数据库连 ...
- Postman请求后台报错:Invalid character found in method name. HTTP method names must be tokens
在使用Postman请求后台时Postman出现 开发工具控制台报 信息: Error parsing HTTP request header Note: further occurrences of ...
- 【Linux内核】CPU和线程
首先明确一个概念,Linux系统中甚至没有真正的线程.不过,可以认为Linux是系统的线程是内核线程,所有调度是基于线程的. 1.线程分类 一个进程由于其运行空间的不同, 从而有内核线程和用户进程的区 ...
- 深入理解TCP三握四挥
面试中被问到不少次TCP的三握四挥,今天特意来做一个总结(一些资料是很久前找的,忘了参考的链接了) 一.三次握手 首先来看一张图 最初,客户机A与服务器B的TCP进程都处于 CLOSED 状态. 然后 ...
- Part_five:Redis哨兵高可用
redis哨兵高可用 1.redis-sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案, 当用redis作master-slave的高可用时,如果master本身宕 ...