睡觉觉觉得 2023-11-29 00:21 采纳率: 85.2%
浏览 3
已结题

每日一练(简简单单的)

描述

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

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

输出
输出一个整数 a ,表示结果。

如果某个案例中满足条件的正整数不存在,则在对应行输出-1.

输入样例 1

35 10
输出样例 1

5

  • 写回答

4条回答 默认 最新

  • 关注

    暴力求解,从1开始遍历,代码如下:

    #include <iostream>
    using namespace std;
    int main()
    {
        int a,m,n;
        int b;
        int flag = 0;//是否存在
        cin >> n >> m;
        for(a = 1;a<=m/2;a++) //到m/2
        {
            b = m-a;
            if(n%a==0 && n%b==0)
            {
                flag = 1;
                break;
            }
        }
        if(flag == 1)
            cout << a;
        else
            cout <<"-1";
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 创建了问题 11月29日