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

2025年全国青少年信息素养大赛复赛C++集训(15):因子问题(题目及解析)

2025年全国青少年信息素养大赛复赛C++集训(15):因子问题(题目及解析)

在这里插入图片描述

题目描述

任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。

时间限制:10000

内存限制:65536

输入

包括两个整数N、M。N不超过1,000,000。

输出

输出一个整数a,表示结果。如果某个案例中满足条件的正整数不存在,则在对应行输出-1

样例输入

35 10

样例输出

5

AC代码

#include<bits/stdc++.h>
using namespace std;int n, m; // 输入的N和M
bool f = 0; // 标记是否找到符合条件的aint main() {cin >> n >> m;// 遍历可能的a值,从1到1e6。因为N不超过1e6,所以因子最大为Nfor(int a = 1; a <= 1000000; a++) {// 检查三个条件:a是N的因子,M-a是N的因子,且a必须小于M(保证M-a为正)if(n % a == 0 && n % (m - a) == 0 && m > a) {f = 1; // 找到解cout << a; // 输出最小的abreak; // 由于是从小到大遍历,找到后直接退出}}if(f == 0) { // 遍历完所有可能后仍未找到cout << -1;}return 0;
}

功能分析

  1. 目标
    • 寻找最小的正整数a,使得a和(M-a)均为N的因子,且a < M。
  2. 遍历范围
    • 由于题目中N的最大值为1e6,因此a的最大可能值不超过1e6。遍历1到1e6的所有整数。
  3. 条件检查
    • n % a == 0:确保a是N的因子。
    • n % (m - a) == 0:确保(M - a)是N的因子。
    • m > a:确保M - a为正整数。

文末彩蛋:

关注并查看老师的个人主页,学习完整csp信奥赛完整系列课程: https://edu.csdn.net/lecturer/7901

在这里插入图片描述

http://www.dtcms.com/a/211435.html

相关文章:

  • 分布式消息中间件基础
  • [原创](计算机数学)(Introduction Linear Algebra)(P25): 为什么Cyclic Differences无法构成三维空间?
  • 数据库范式
  • 怎样改变中断优先级?
  • java面试题
  • Vue2 / Vue3 使用自定义配置,实现打印+生成PDF的带水印文件
  • uni-app学习笔记十--vu3 computed的运用(一)
  • 计算机组成原理——主存与CPU的连接
  • 【MPC控制 - 从ACC到自动驾驶】1 ACC系统原理与MPC初步认知
  • uni-app(5):Vue3语法基础上
  • 第2章 数据库设计
  • Serv00 免费邮局 搭建属于自己的域名邮箱 支持 SMTP / Catch-all
  • 5月24日day35打卡
  • python打卡训练营打卡记录day35
  • Nginx-详解(二)
  • 使用CodeBuddy基于Pygame模块实现贪吃蛇游戏
  • 细说STM32单片机FreeRTOS消息缓冲区及其应用实例
  • 精益数据分析(84/126):打造商业造钱机器——从融资思维到盈利模型的落地实践
  • 【DAY28】类的定义和方法
  • 2025家政预约小程序开发:功能模块解析与行业解决方案
  • 【MySQL】CRUD
  • OpenSSH 9.9p2 编译安装全流程指南
  • Linux概述
  • go多线程压测监控
  • [Linux] 再谈 Linux Socket 编程技术(代码示例)
  • 【AI论文】工具之星(Tool-Star):通过强化学习赋能具备大型语言模型(LLM)思维的多工具推理器
  • 一体化雷达波明渠流量计简介
  • 【数据集】中国大陆城市建筑楼面面积高分辨率数据集(2017年)
  • Vue 3 路由传参使用指南
  • JavaSE核心知识点03高级特性03-04(Lambda表达式)