又見GCD hd 2504

q923714892發表於2020-04-06
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<stdio.h>
int GCD(int x,int y)
{
	if(x%y==0)
	return y;
	else 
	return GCD(y,x%y);
}
int FS(int x,int y,int z)
{
	if(GCD(x,y)==z)
	return y;
	else 
	return FS(x,y+z,z);
}
int main()
{
	int n,a,b,c;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d%d",&a,&b);
		c=b*2;
		c=FS(a,c,b);
		printf("%d\n",c);
	}
	return 0;
}

相關文章