《P1072 [NOIP 2009 提高组] Hankson 的趣味题》

题目描述

Hanks 博士是 BT(Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson。现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题。

今天在课堂上,老师讲解了如何求两个正整数 c1​ 和 c2​ 的最大公约数和最小公倍数。现在 Hankson 认为自己已经熟练地掌握了这些知识,他开始思考一个“求公约数”和“求公倍数”之类问题的“逆问题”,这个问题是这样的:已知正整数 a0​,a1​,b0​,b1​,设某未知正整数 x 满足:

  1. x 和 a0​ 的最大公约数是 a1​;

  2. x 和 b0​ 的最小公倍数是 b1​。

Hankson 的“逆问题”就是求出满足条件的正整数 x。但稍加思索之后,他发现这样的 x 并不唯一,甚至可能不存在。因此他转而开始考虑如何求解满足条件的 x 的个数。请你帮助他编程求解这个问题。

输入格式

第一行为一个正整数 n,表示有 n 组输入数据。接下来的n 行每行一组输入数据,为四个正整数 a0​,a1​,b0​,b1​,每两个整数之间用一个空格隔开。输入数据保证 a0​ 能被 a1​ 整除,b1​ 能被 b0​ 整除。

输出格式

共 n 行。每组输入数据的输出结果占一行,为一个整数。

对于每组数据:若不存在这样的 x,请输出 0,若存在这样的 x,请输出满足条件的 x 的个数;

输入输出样例

输入 #1复制

2 
41 1 96 288 
95 1 37 1776 

输出 #1复制

6 
2

说明/提示

【样例解释】

第一组输入数据,x 可以是 9,18,36,72,144,288,共有 6 个。

第二组输入数据,x 可以是 48,1776,共有 2 个。

【数据范围】

  • 对于 50% 的数据,保证有 1≤a0​,a1​,b0​,b1​≤10000 且 n≤100。
  • 对于 100% 的数据,保证有 1≤a0​,a1​,b0​,b1​≤2×109 且 n≤2000。

NOIP 2009 提高组 第二题

代码实现;

#include<iostream>
#include<cmath>
using namespace std;
int gongyue(int i,int a0)
{
    int j,k=1;
    for(j=1;j<=min(i,a0);j++)
    {
        if(i%j==0 && a0%j==0)
        {
            k=j;
        }
    }
    return k;
}
int gongbei(int i,int b0)
{
    int j,k=1;
    for(j=min(i,b0);j<=i*b0;j++)
    {
        if(j%i==0 && j%b0==0)
        {
            k=j;
            break;
        }
    }
    return k;
}
int main()
{
    int n,a0,a1,b0,b1;
    int i,j,k;
    cin>>n;
    while(n--)
    {   int count=0;
        cin>>a0>>a1>>b0>>b1;
        for(i=1;i*i<=b1;i++)
        {
            if(b1%i==0)
            {
            if((gongyue(i,a0)==a1) && (gongbei(i,b0)==b1))
            {
                count++;
                //cout<<i<<endl;
            }
            if(i!=b1/i)
            {
                j=b1/i;
                if((gongyue(j,a0)==a1) && (gongbei(j,b0)==b1))
            {
                count++;
                //cout<<i<<endl;
            }
                
             } 
            }
            
            
        }
        cout<<count<<endl;
    }
    return 0;
 } 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx的自动跳转https

mkdir /usr/local/nginx/certs/ 创建一个目录 然后用openssl生成证书 编辑nginx的配置文件 自动跳转成功 做一个优化&#xff0c;如果访问的时候后面加了其他的uri也一起自动跳转了

力扣刷题——508.出现次数最多的子树和

给你一个二叉树的根结点 root &#xff0c;请返回出现次数最多的子树元素和。如果有多个元素出现的次数相同&#xff0c;返回所有出现次数最多的子树元素和&#xff08;不限顺序&#xff09;。 一个结点的 「子树元素和」 定义为以该结点为根的二叉树上所有结点的元素之和&…

2025/4/2 心得

第一题 题目描述 给定1001个范围在[1,1000]的数字&#xff0c;保证只有1个数字重复出现2次&#xff0c;其余数字只出现1次。试用O(n)时间复杂度来求出出现2次的这个数字。 不允许用数组 输入格式 第一行&#xff1a;一个整数1001&#xff1b; 第二行&#xff1a;1001个用…

0基础 | 硬件 | NE555芯片 二

目录 “双稳态电路之按键开关LED” 版本一&#xff1a; 版本二&#xff1a; “单稳态电路之延时自动关” 版本一 “无稳态电路之延时自动开关” 版本一&#xff1a; 版本二 “双稳态电路之按键开关LED” 版本一&#xff1a; 按键1 使2脚输入低电平&#xff0c;则3输出…

Python实现链接KS3,并将文件数据上传到KS3

前言 本文是该专栏的第55篇,后面会持续分享python的各种干货知识,值得关注。 说到KS3,首先想到的是金山云提供的对象存储服务。 相信或多或少的同学,在工作项目中也会遇到KS3相关的需求。比如说,现在有大批量的数据文件需要通过Python,上传到KS3中。对此,需要怎么去做…

小白 解析thingsboard 规则链节点

目录 1、filter(筛选器)节点内容 1. Alarm Status Filter(报警状态过滤器) 2. Check Fields Presence(检查字段存在性过滤器) 3. Check Relation Presence(检查关系存在性过滤器) 4. Entity Type Filter(实体类型过滤器) 5. Message Type Filter(消息类型过滤器…

PgVectore的使用

PgVectore的使用 一、PgVector的安装 参照博客&#xff1a;https://blog.csdn.net/u012953777/article/details/147013691?spm1001.2014.3001.5501 二、PgVector的使用 1、创建表与插入数据​ ​​定义向量字段​​&#xff1a; CREATE TABLE items (id SERIAL PRIMARY …

python爬虫爬取淘宝热销(热门)男装商品信息(课程设计;提供源码、使用说明文档及相关文档;售后可联系博主)

TOC 本文仅为记录学习轨迹&#xff0c;如有侵权,联系删除 一、环境说明 使用前必须检查以下环境 &#xff08;1&#xff09;python编译环境 &#xff08;2&#xff09;python脚本执行所需要的库&#xff0c;具体看代码&#xff08;main.py&#xff09;import导入的部分库 &a…

C++ 排序(1)

以下是一些插入排序的代码 1.插入排序 1.直接插入排序 // 升序 // 最坏&#xff1a;O(N^2) 逆序 // 最好&#xff1a;O(N) 顺序有序 void InsertSort(vector<int>& a, int n) {for (int i 1; i < n; i){int end i - 1;int tmp a[i];// 将tmp插入到[0,en…

计算机视觉图像处理基础系列:滤波、边缘检测与形态学操作

计算机视觉图像处理基础系列&#xff1a;滤波、边缘检测与形态学操作 一、前言二、滤波&#xff1a;图像的精细化处理​2.1 滤波基础概念​2.1.1 滤波的本质​2.1.2 图像噪声来源与类型​ 2.2 线性滤波​2.2.1 均值滤波​2.2.2 高斯滤波​ 2.3 非线性滤波​2.3.1 中值滤波​ 三…

第八课:在SD中安装拓展插件

3种拓展安装方式教学 点击Extensions安装方式 经由内置列表查询安装&#xff0c;打开Available&#xff0c;输入链接&#xff0c;点击Load from:&#xff0c;然后筛选后点击Install通过链接安装&#xff0c;复制代码仓库地址&#xff0c;github/gitee&#xff0c;输入Install …

tomcat的web三大组件Sciidea搭建web/maven的tomcat项目

文章目录 1. web项目的搭建1. 创建web项目2.修改web.xml版本3.添加servlet、jsp依赖4.servlet示例&#xff08;使用注解&#xff09;5.配置tomcat6.添加artifact7.部署8.启动tomcat、访问9.打war包10.部署到tomcat 2.maven的项目搭建1.创建项目图解 2.tomcat启动方式图解idea打…

ZKmall开源商城多云高可用架构方案:AWS/Azure/阿里云全栈实践

随着企业数字化转型的加速&#xff0c;云计算服务已成为IT战略中的核心部分。ZKmall开源商城作为一款高性能的开源商城系统&#xff0c;其在多云环境下的高可用架构方案备受关注。下面将结合AWS、Azure和阿里云三大主流云平台&#xff0c;探讨ZKmall的多云高可用架构全栈实践。…

【代码模板】如何用FILE操作符打开文件?fopen、fclose

#include "stdio.h" #include "unistd.h"int main(int argc, char *argv[]) {FILE *fp fopen("1.log", "wb");if (!fp) {perror("Failed open 1.log");return -1;}fclose(fp); }关于权限部分参考兄弟篇【代码模板】C语言中…

Airflow+Spark/Flink vs. Kettle

在迁移亿级&#xff08;单表超过1.3亿&#xff09;结构化数据&#xff08;达梦→星环&#xff09;的场景下&#xff0c;Airflow&#xff08;结合分布式计算框架&#xff09;的综合效果优于Kettle&#xff0c;以下是详细对比与方案建议&#xff1a; 一、核心对比&#xff1a;Air…

多电机显示并排序

多电机显示并排序 要实现根据后端传递过来的驱动电机数据的数量来显示不同数量的数据列表&#xff0c;我们可以使用 Vue 的 v-for 指令来遍历 driveMotorData 数组&#xff0c;并为每个驱动电机生成一个数据列表。这样&#xff0c;无论后端传来多少个驱动电机的数据&#xff0…

图漾相机——C#语言属性设置

文章目录 前言1.示例程序说明2.SDK API功能介绍2.1 ListDevice 枚举设备2.2 Open 打开相机2.3 OpenDeviceByIP 通过IP打开设备2.4 Close 关闭设备2.5 DeviceStreamEnable 取流使能2.6 DeviceStreamFormatDump 取流分辨率2.7 DeviceStreamFormatConfig 取流分辨率配置2.8 Device…

thinkphp8.0上传图片到阿里云对象存储(oss)

1、开通oss,并获取accessKeyId、accessKeySecret <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><tit…

跳跃连接(Skip Connection)与残差连接(Residual Connection)

1. 跳跃连接&#xff08;Skip Connection&#xff09;的基本概念 跳跃连接是一种在深度神经网络中广泛应用的技术&#xff0c;它允许信息在网络中跨层直接传递。在传统的神经网络里&#xff0c;每一层的输出仅仅是前一层输出经过特定变换后的结果。而在具备跳跃连接的网络中&a…