NOI2.1-2723因子问题
3108+
作者:crxis 发布:2017-08-31 分类:枚举
题目大意:任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。
输入
一行包括两个整数N、M。N不超过1,000,000。
输出
一行,一个整数a,代表结果。如果满足条件的正整数不存在,则在对应行输出-1
样例输入
35 10
样例输出
5
解题思路
枚举a和m-a,符合条件就输出并退出循环,最后判断是否正常退出循环,正常的话说明无解输出-1。再想一想,发现枚举a后,另外一个数m-a可以直接算出来,因此一重循环就足够了。在枚举过程中,需要注意边界条件,a从1到m-1,不能到m,因为如果到m后会出现模0,运行错误-1就可能输出不了了;另外,a肯定比m-a小,因为a从小到大枚举,如果符合条件会立即退出循环,不会出现a和m-a交换大小位置。