当前位置: 首页 > 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

在这里插入图片描述

相关文章:

  • 分布式消息中间件基础
  • [原创](计算机数学)(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家政预约小程序开发:功能模块解析与行业解决方案
  • pinterest设计网站/seo 公司
  • 免费可商用的素材网站/网站优化公司认准乐云seo
  • 网站的跳出率/动态网站的制作与设计
  • 在百度上做网站推广效果怎么样/seo教程自学
  • 好友介绍网站怎么做/seo一键优化
  • icp备案查询网站/360收录提交入口