HDU 又见GCD

又见GCD

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 16189    Accepted Submission(s): 6871


Problem Description
有三个正整数a,b,c(0<a,b,c<10^6),其中c不等于b。若a和c的最大公约数为b,现已知a和b,求满足条件的最小的c。
 

Input
第一行输入一个n,表示有n组测试数据,接下来的n行,每行输入两个正整数a,b。
 

Output
输出对应的c,每组测试数据占一行。
 

Sample Input
 
  
2 6 2 12 4
 

Sample Output
 
  
4 8
#include<iostream>
#include<cmath>
using namespace std;
int gcd(int a, int b);
int main()
{
	int a, b, c,n;
	cin >> n;
	while (n--)
	{
		cin >> a >> b;
		c = gcd(a, b);
		cout << c << endl;
	
	}


}
int gcdd(int a, int b)
{
	for (int i = 2; i < b ; i++)
	{
		if (a%i == 0 && b%i == 0)
			return 0;
	}
	return 1;
}
int gcd(int a, int b)
{
	int k = a / b;
	if (k == 1)
		return b * 2;
	for (int i = 2; i < k;i++)
	if (k % i != 0&&(gcdd(k,i)!=0))
	{
		//cout << b << endl;
		return b * i;
	}
}


 

猜你喜欢

转载自blog.csdn.net/s695540301/article/details/52744739
今日推荐