1012 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组
1012 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 白银 Silver
题目描述 Description
输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数
条件: 1.P,Q是正整数
2.要求P,Q以x0为最大公约数,以y0为最小公倍数.
试求:满足条件的所有可能的两个正整数的个数.
输入描述 Input Description
二个正整数x0,y0
输出描述 Output Description
满足条件的所有可能的两个正整数的个数
样例输入 Sample Input
3 60
样例输出 Sample Output
4
数据范围及提示 Data Size & Hint
分类标签 Tags
数论 NOIP全国联赛普及组 大陆地区 2001年
/*
x*y=LCM(x,y)*GCD(x,y).
so枚举在√xy中的因子然后再看gcd(x,y)==a即可.
复杂度为O(√xy).
然后这题其实有更快做法.
式子两边同时除以gcd(x,y)
得到x/gcd(x,y)*y/gcd(x,y)=lcm/gcd(x,y).
然后这时x/gcd(x,y)与y/gcd(x,y)互质.
可以达到缩小范围的目的.
*/
#include<iostream>
#include<cstdio>
#define LL long long
using namespace std;
LL a,b,ans,tot;
int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+ch-48,ch=getchar();
return x*f;
}
int gcd(LL x,LL y)
{
if(!y) return x;
else return gcd(y,x%y);
}
void slove()
{
LL i;
for(i=1;i*i<=tot;i++)
{
if(tot%i==0)
{
LL j=tot/i;
if(gcd(j,i)==a) ans++;
}
}
if(i*i==tot&&gcd(i,i)==a) ans--;
cout<<ans*2;
}
int main()
{
cin>>a>>b;
tot=a*b;
slove();
return 0;
}
1012 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组的更多相关文章
- 【数论】【最大公约数】【枚举约数】CODEVS 1012 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组
对于一对数(p,q),若它们的gcd为x0,lcm为y0, 则:p*q/x0=y0,即q=x0*y0/p, 由于p.q是正整数,所以p.q都必须是x0*y0的约数. 所以O(sqrt(x0*y0))地 ...
- 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组
题目描述 Description 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整 ...
- wikioi1012 最大公约数和最小公倍数问题(2001年NOIP全国联赛普及组)
题目描述 Description 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整 ...
- codevs1011 数的计算 2001年NOIP全国联赛普及组
题目描述 Description 我们要求找出具有下列性质数的个数(包含输入的自然数n): 先输入一个自然数n(n<=1000),然后对此自然数按照如下方法进行处理: 1. 不 ...
- codevs 1014 装箱问题 2001年NOIP全国联赛普及组
题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若 ...
- 【动态规划】【记忆化搜索】CODEVS 1011 数的计算 2001年NOIP全国联赛普及组
设答案为f(n),我们显然可以暴力地递归求解: f(n)=f(1)+f(2)+……+f(n/2). 但是n=1000,显然会超时. 考虑状态最多可能会有n种,经过大量的重复计算,所以可以记忆下来,减少 ...
- 【动态规划】【零一背包】CODEVS 1014 装箱问题 2001年NOIP全国联赛普及组
#include<cstdio> #include<algorithm> using namespace std; ],f[]; int main() { scanf(&quo ...
- codevs 1013 求先序排列 2001年NOIP全国联赛普及组 x
题目描述 Description 给出一棵二叉树的中序与后序排列.求出它的先序排列.(约定树结点用不同的大写字母表示,长度<=8). 输入描述 Inpu ...
- 1038 一元三次方程求解 2001年NOIP全国联赛提高组
题目描述 Description 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100 ...
随机推荐
- Boot-crm管理系统开发教程(一)
ps:上周就把这个项目写完了,一直忘记记录,现在补上. Boot-crm是书上第十八章的内容,书上提供了前端的代码,所以只需要写后端的代码就可以了,①所以我们先把前端的代码移植到项目中. ②然后在li ...
- Web前端开发JavaScript基础
JavaScript 一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型,它的解释器被称为JavaScript引擎,是浏览器的一部分,并且是被广泛用于客户端的脚本语言,JavaS ...
- mybatis数组和集合的长度判断及插入
1.在使用foreach的是collection属性,该属性是必须指定的,但是在不同情况下,该属性的值是不一样的,主要有一下4种情况: 如果传入的是单参数且参数类型是一个List的时候,collect ...
- GridView直接打印
/// <summary> /// 打印功能 /// </summary> /// <param name="panel">打印控件</p ...
- git的详细安装
git的详细安装 Git 是时候动手尝试下 Git 了,不过得先安装好它.有许多种安装方式,主要分为两种,一种是通过编译源代码来安装:另一种是使用为特定平台预编译好的安装包. 从源代码安装 若是条件允 ...
- JS基础_for循环
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- mysql的decimal(10,0) not null问题
今天排查一个bug发现开发环境老是报错 order_num 字段insert的时候不能为空,但是发现测试环境没有这个问题. 后来发现测试环境有一个数据库docker安装的mysql 版本是5.7 而 ...
- vue-cli3开干
npm install -g @vue/cli-service-global vue create hello-world
- 输入列号得到excel对应的字母列
zexcel_cell_column 类型是INT4 FUNCTION ZGET_EXCEL_COL. *"----------------------------------------- ...
- 基于Scrapt框架的全站数据爬取
创建scrapy工程项目,除了爬虫文件中的代码需要略微修改,其他模块用法相同(如中间件,管道等): 爬虫文件代码流程 导入链接提取器 from scrapy.linkextractors import ...