当前位置: 首页 > article >正文

《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;
 } 

相关文章:

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

题目描述 Hanks 博士是 BT&#xff08;Bio-Tech&#xff0c;生物技术) 领域的知名专家&#xff0c;他的儿子名叫 Hankson。现在&#xff0c;刚刚放学回家的 Hankson 正在思考一个有趣的问题。 今天在课堂上&#xff0c;老师讲解了如何求两个正整数 c1​ 和 c2​ 的最大公约数…...

CSS3学习教程,从入门到精通, 化妆品网站 HTML5 + CSS3 完整项目(26)

化妆品网站 HTML5 CSS3 完整项目 下面是一个完整的化妆品网站项目&#xff0c;包含主页、登录页面和注册页面。我将按照您的要求提供详细的代码和注释。 1. 网站规划与需求分析 需求分析 展示化妆品产品信息提供用户注册和登录功能响应式设计&#xff0c;适配不同设备美观…...

全国产FMC子卡-16bit 8通道2.4G

国产化FMC DA子卡&#xff0c;16bit 8通道2.4GS/s 全国产FMC子卡是一款高分辨率、高采样率的全国产多通道标准双宽DAC FMC子板。其接口电气和结构设计均依据FMC标准(ANSI/VITA 57.1)&#xff0c;通过两个高密度FMC连接器&#xff08;HPC&#xff09;连接至FPGA载板。它提供8路A…...

fpga:分秒计时器

任务目标 分秒计数器核心功能&#xff1a;实现从00:00到59:59的循环计数&#xff0c;通过四个七段数码管显示分钟和秒。 复位功能&#xff1a;支持硬件复位&#xff0c;将计数器归零并显示00:00。 启动/暂停控制&#xff1a;通过按键控制计时的启动和暂停。 消抖处理&#…...

小白 thingsboard 拆分前后端分离

1、modules 里注释掉ui_ugx <modules><module>netty-mqtt</module><module>common</module><module>rule-engine</module><module>dao</module><module>edqs</module><module>transport</module&g…...

4G专网:企业数字化转型的关键通信基石

4G专网 在数字化转型的浪潮下&#xff0c;企业对高可靠性、低时延、安全可控的通信网络需求日益增长。传统的公用蜂窝网络难以满足企业在工业自动化、能源管理、智慧城市等领域的特殊需求&#xff0c;因此4G专网成为众多行业的优先选择。作为行业领先的移动核心网提供商&#x…...

golang 的encoding/json包

理解 Go 语言中的 encoding/json 包 Go 语言通过 encoding/json 包提供了对 JSON 数据的强大支持&#xff0c;包括序列化、反序列化、自定义处理、数组处理、任意结构解析以及流式处理等。 1. 基本使用 1.1 结构体字段与 JSON 的映射 在 Go 中&#xff0c;结构体的字段可以…...

基于FLask的共享单车需求数据可视化分析系统

【FLask】基于FLask的共享单车需求数据可视化分析系统 &#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统能够整合并处理大量共享单车使用数据&#xff0c;通过直观的可视化手段&#xff0…...

STL 性能优化实战:解决项目中标准模板库的性能瓶颈

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、全栈领域优质创作者、高级开发工程师、高级信息系统项目管理师、系统架构师&#xff0c;数学与应用数学专业&#xff0c;10年以上多种混合语言开发经验&#xff0c;从事DICOM医学影像开发领域多年&#xff0c;熟悉DICOM协议及…...

ES使用聚合aggregations实战(自用:2025.04.03更新)

ES使用聚合aggregations实战 聚合模板桶聚合&#xff1a;Bucket Aggregations指标聚合&#xff1a;Metrics Aggregations管道聚合&#xff1a;Pipeline Aggregations嵌套聚合日期直方图&#xff1a;date-histogram 接口实战接口一&#xff1a;根据stu_id分组统计时间段内的各个…...

AI Agent设计模式四:Evaluator

概念 &#xff1a;质量验证与反馈机制 ✅ 优点&#xff1a;自动化质量检查&#xff0c;实现持续优化闭环❌ 缺点&#xff1a;评估准确性依赖模型能力 from typing import TypedDict from langchain_openai import ChatOpenAI from langgraph.graph import StateGraph, START, …...

AI绘画中的LoRa是什么?

Lora是一个多义词&#xff0c;根据不同的上下文可以指代多种事物。以下将详细介绍几种主要的含义&#xff1a; LoRa技术 LoRa&#xff08;Long Range Radio&#xff09;是一种低功耗广域网&#xff08;LPWAN&#xff09;无线通信技术&#xff0c;以其远距离、低功耗和低成本的特…...

Linux网络:数据链路层以太网

目录 认识数据链路层关于以太网1. 基本概念2. 以太网帧格式3. MAC vs IP 认识数据链路层 数据链路层 位于物理层和网络层之间&#xff0c;其作用是将源自物理层来的数据可靠地传输到相邻节点的目标主机的网络层&#xff0c;主要通过物理介质(如以太网&#xff0c;Wi-Fi等)将数…...

Redisson使用详解

一、Redisson 核心特性与适用场景 Redisson 是基于 Redis 的 Java 客户端&#xff0c;提供分布式对象、锁、集合和服务&#xff0c;简化分布式系统开发。 典型应用场景&#xff1a; 分布式锁&#xff1a;防止重复扣款、超卖控制&#xff08;如秒杀库存&#xff09;。数据共享…...

MySQL基础 [一] - 数据库基础

目录 什么是数据库 站在服务器角度理解 站在用户角度理解 为什么不直接使用文件存储呢&#xff1f; 主流数据库 MySQL的基本使用 数据库的使用样例 服务器管理 服务器数据库表之间的关系 MySQL的架构 MySQL语句分类 存储引擎 查看存储引擎 存储引擎对比 什么…...

【华为OD技术面试真题 - 技术面】- Java面试题(17)

华为OD面试真题精选 专栏:华为OD面试真题精选 目录: 2024华为OD面试手撕代码真题目录以及八股文真题目录 文章目录 华为OD面试真题精选虚拟机分区1. **虚拟磁盘分区**2. **虚拟机的内存分区**3. **CPU分配**4. **虚拟网络分区**5. **存储虚拟化和分区**6. **虚拟机分区管理**…...

#Linux内存管理# 在32bit Linux中,内核空间的线性映射的虚拟地址和物理地址是如何换算的?

在32位Linux系统中&#xff0c;内核空间的线性映射&#xff08;也称为直接映射或低端内存映射&#xff09;采用固定的偏移量进行虚拟地址和物理地址的换算。以下是详细的转换规则及背景知识&#xff1a; 1. 32位Linux内存布局 用户空间&#xff1a;虚拟地址 0x00000000 到 0x…...

006贪心——算法备赛

跨步问题 跳跃游戏|| 问题描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[i]i j &…...

对 Python Websockets 库全方位详解

一、WebSocket 简介 WebSocket 是一种基于 TCP 的协议&#xff0c;支持全双工通信&#xff08;服务器和客户端可以同时发送消息&#xff09;&#xff0c;适用于实时性要求高的场景&#xff08;如聊天、实时数据监控、在线游戏等&#xff09;。与 HTTP 不同&#xff0c;WebSock…...

pytorch中Dropout

Dropout 是一种常用的正则化技术&#xff0c;用于防止神经网络过拟合。PyTorch 提供了 nn.Dropout 层来实现这一功能。 基本用法 torch.nn.Dropout(p0.5, inplaceFalse) 参数说明&#xff1a; p (float): 每个元素被置为0的概率&#xff08;默认0.5&#xff09; inplace (b…...

【玩泰山派】2、制作buildroot镜像,并烧录

文章目录 前言制作buildroot镜像过程搭建环境&#xff08;docker版&#xff09;下载泰山派开发的sdk利用制作的镜像和下载的sdk去启动开发docker容器编译buildroot镜像 参考 前言 泰山派官方提供了不少现成的镜像 但是都买了泰山派了&#xff0c;肯定是想自己编译折腾下&…...

初阶数据结构--树

1. 树的概念与结构 树是⼀种⾮线性的数据结构&#xff0c;它是由 n&#xff08;n>0&#xff09; 个有限结点组成⼀个具有层次关系的集合。把它叫做 树是因为它看起来像⼀棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;⽽叶朝下的。 有⼀个特殊的结点&#xff0c;称…...

client-go如何监听自定义资源

如何使用 client-go 监听自定义资源 在 Kubernetes 中使用 client-go 监听自定义资源&#xff08;Custom Resource&#xff0c;简称 CR&#xff09;需要借助 Dynamic Client 或 Custom Informer&#xff0c;因为 client-go 的标准 Clientset 只支持内置资源&#xff08;如 Pod…...

安装gpu版本的dgl

1.先去网址&#xff0c;找到对应版本的dgl,然后下载到本地。 dgl-whl下载地址 我的是python 3.8 &#xff0c;cuda 11.6. windows 2.在虚拟环境里 输入 pip install E:\dgl-1.0.2cu116-cp38-cp38-win_amd64.whl &#xff08;因为我下载到E盘里了&#xff09; 这样GPU版本的d…...

AI比人脑更强,因为被植入思维模型【43】蝴蝶效应思维模型

giszz的理解&#xff1a;蝴蝶效应我们都熟知&#xff0c;就是说一个微小的变化&#xff0c;能带动整个系统甚至系统的空间和时间的远端&#xff0c;产生巨大的链式反应。我学习后的启迪&#xff0c;简单的说&#xff0c;就是不要忽视任何微小的问题&#xff0c;更多时候&#x…...

Libevent UDP开发指南

UDP 与 TCP 的核心区别 无连接:不需要建立/维护连接 不可靠:不保证数据包顺序和到达 高效:头部开销小,没有连接管理负担 支持广播/多播:可以向多个目标同时发送数据 一、基础UDP服务器实现 1. 创建 UDP 套接字 #include <event2/event.h> #include <event2/lis…...

Android View事件分发机制深度解析

在Android面试中&#xff0c;关于View事件分发机制的考察往往不仅限于基础流程&#xff0c;更关注底层原理、性能优化和实际应用场景。以下是针对面试的全面回答策略&#xff1a; 一、基础回答框架 核心三要素&#xff1a; 传递流程 "事件分发遵循Activity → Window →…...

如何在 GitHub 上开源一个小项目:从创建到长期维护的完整指南

如何在 GitHub 上开源一个小项目&#xff1a;从创建到长期维护的完整指南 适用于 个人开发者、团队合作、企业开源&#xff0c;涵盖 Git 基础、GitHub 配置、最佳实践、社区互动、自动化 CI/CD 及长期维护策略。 &#x1f4cc; 1. 注册 GitHub 账户 如果你还没有 GitHub 账户&…...

autoconf 笔记250404

autoconf autoconf 是 Linux 系统中控制 IPv6 无状态地址自动配置&#xff08;SLAAC&#xff09; 的关键参数&#xff0c;位于 /proc/sys/net/ipv6/conf/<接口>/ 目录下。它决定接口是否根据接收到的 路由通告&#xff08;Router Advertisement, RA&#xff09; 自动生成…...

5天速成ai agent智能体camel-ai之第1天:camel-ai安装和智能体交流消息讲解(附源码,零基础可学习运行)

嗨&#xff0c;朋友们&#xff01;&#x1f44b; 是不是感觉AI浪潮铺天盖地&#xff0c;身边的人都在谈论AI Agent、大模型&#xff0c;而你看着那些密密麻麻的代码&#xff0c;感觉像在读天书&#xff1f;&#x1f92f; 别焦虑&#xff01;你不是一个人。很多人都想抓住AI的风…...