P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题(数学思维)

简介: P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题(数学思维)

题目描述



输入两个正整数 x0,y0,求出满足下列条件的  P,Q 的个数:

  1. P,Q 是正整数。
  2. 要求  P,Q 以  x0 为最大公约数,以 y0 为最小公倍数。


试求:满足条件的所有可能的 P,Q 的个数。


输入格式



一行两个正整数 x0,y0。


输出格式



一行一个数,表示求出满足条件的  P,Q 的个数。


输入输出样例



输入  

3 60


输出

4


说明/提示



P,Q 有 4  种:

  1. 3, 60
  2. 15, 12
  3. 12, 15
  4. 60, 3


【题目来源】

NOIP 2001 普及组第二题

题意分析,首先我们肯定知道最大公约数和最小公倍数的乘积等于2个数的的乘积。


然后我们遍历一遍找到他们2个数,用m*n代表,当他们的最大公约数为n时成立。

具体实现看代码。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int m,n,ans,flag;
ll gcd(ll x,ll y)//最大公约数 
{
    if(x%y==0)    {return y;}
    return gcd(y,x%y);
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=sqrt(1ll*m*n);i++)
    {
        if((1ll*n*m)%i==0&&gcd(i,(1ll*n*m)/i)==n)//就是找有最大公约数有几个可以产生 
        {
            ans++;
            if(1ll*i*i==1ll*n*m)  flag=1;
        }
    }
    cout<<ans*2-flag;//最后乘以二是因为只遍历了一半
    return 0;
}


相关文章
|
小程序 前端开发 安全
小程序全栈开发中的跨域问题及其解决方案
【4月更文挑战第12天】本文探讨了小程序全栈开发中的跨域问题及其解决方案。跨域问题源于浏览器安全策略,主要体现在前后端分离、第三方服务集成和数据共享上。为解决此问题,开发者可采用CORS、JSONP、代理服务器、数据交换格式和域名策略等方法。实践中需注意安全性、兼容性和性能。通过掌握这些解决方案,开发者能更好地处理小程序的跨域问题,提升用户体验。
869 0
|
存储 人工智能 编译器
C/C++期末考试复习---知识点+习题
C/C++期末考试复习---知识点+习题
1954 2
|
JavaScript 前端开发 Java
SpringBoot+Vue打造资产出入库管理系统(二)
SpringBoot+Vue打造资产出入库管理系统
775 2
|
Ubuntu C++
Ubuntu20.04(LTS)换源(阿里、清华)以及sources.list分享
自用好使,谨慎操作 鄙人在安装完Ubuntu之后,安装Code::blocks的时候,在此之前需要安装C/C++编译环境build-essential,在安装的时候报出有关软件包依赖性的关系问题,经过一波研究发现,有的大佬通过安装aptitude来解决问题,因为aptitude可以很好地解决依赖关系 但是在安装aptitude的时候,还是出现了依赖关系,莫得办法 安装aptitude的命令
5673 0
|
弹性计算 Java Linux
手把手教你把Springboot项目部署到阿里云教程
手把手教你把Springboot项目部署到阿里云教程成功连接远程云服务器和配置阿里云安全组
2336 1
|
弹性计算 关系型数据库 MySQL
Docker安装MySQL
这篇文章详细介绍了如何使用Docker安装MySQL数据库服务,包括拉取镜像、配置数据卷以及启动容器的步骤。
1143 1
Docker安装MySQL
|
安全 网络安全 数据安全/隐私保护
内网IP地址实现HTTPS加密访问教程
在内网环境中,为确保数据传输的安全性,绑定SSL证书搭建HTTPS服务器至关重要。本文介绍了内网IP地址的前期准备、申请SSL证书的步骤以及客户端配置方法。具体包括选择合适的CA、注册账号、提交申请、下载证书,并在客户端导入根证书,确保通信数据的安全加密。推荐使用JoySSL提供的技术解决方案,确保内网设备通信安全。
内网IP地址实现HTTPS加密访问教程
|
存储 前端开发 中间件
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
vue3之vite配置vite-plugin-mock使用mock轻松创建模拟数据提高开发效率
1728 0
|
C++
【洛谷 P1044】[NOIP2003 普及组] 栈 题解(递归+记忆化搜索)
**NOIP2003普及组栈问题**:给定操作数序列1到n,仅允许push(进栈)和pop(出栈)操作。目标是计算所有可能的输出序列总数。输入包含一个整数n(1≤n≤18)。示例输入3,输出5。当队列空时返回1,栈空则只能入栈,栈非空时可入栈或出栈。AC C++代码利用记忆化搜索求解。
254 1