1.因子问题任给两个正整数N、M,求一个最小的正整数a,使得a和(M-a)都是N的因子。时间限制:10000内存限制:65536输入包括两个整数N、M。N不超过1,000,000。输出输出一个整数a,表示结果。如果某个案例中满足条件的正整数不存在,则在对应行输出-1样例输入35 10样例输出5
【喵呜刷题小喵解析】:这个问题可以通过暴力枚举的方法来解决。由于N的最大值是1,000,000,因此我们可以从1到M/2遍历所有可能的a值,并检查a和(M-a)是否都是N的因子。如果找到满足条件的a,则输出a;否则,输出-1。由于题目要求输出最小的正整数a,因此我们可以从1开始遍历,一旦找到满足条件的a,就立即输出,并结束遍历。时间复杂度为O(M/2),因为我们需要遍历所有可能的a值。由于N的最大值是1,000,000,因此M的最大值也是1,000,000,所以时间复杂度为O(500,000),满足时间限制的要求。在遍历过程中,我们可以使用一个布尔变量来判断是否找到满足条件的a。如果找到满足条件的a,则将该变量设置为True,并输出a;否则,将该变量设置为False,并输出-1。由于我们需要检查a和(M-a)是否都是N的因子,因此我们可以使用模运算符来判断一个数是否是另一个数的因子。在输出结果时,我们需要注意判断是否找到满足条件的a。如果找到满足条件的a,则输出a;否则,输出-1。需要注意的是,由于题目要求输出最小的正整数a,因此在遍历过程中一旦找到满足条件的a,就应该立即输出,并结束遍历,以避免浪费时间和内存。