描述
任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子.
输入
包括两个整数N、M。N不超过1,000,000。
输出
输出一个整数 a ,表示结果。
如果某个案例中满足条件的正整数不存在,则在对应行输出-1.
输入样例 1
35 10
输出样例 1
5
描述
任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子.
输入
包括两个整数N、M。N不超过1,000,000。
输出
输出一个整数 a ,表示结果。
如果某个案例中满足条件的正整数不存在,则在对应行输出-1.
输入样例 1
35 10
输出样例 1
5
暴力求解,从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;
}