0ms TLE 求调
查看原帖
0ms TLE 求调
998662
xk2013楼主2025/1/12 21:10
#include <algorithm>
#include <cstdio>

const int N = 1e5 + 5;
int T, n, k, ans, a[N];
int gcd(int x, int y);

int main(void)
{
	scanf("%d", &T);
	
	while (T--)
	{
		ans = 0;
		scanf("%d %d", &n, &k);
		
		for (int i = 1; i <= n; i++)
		{
			scanf("%d", &a[i]);
			a[i] = gcd(a[i], a[i - 1]);
		}
		
		for (int i = 2; i <= a[n]; i++)
		{
			if (a[n] % i == 0)
			{
				ans = std::max(ans, k / i * i);
			}
		}
		
		printf("%d\n", ans);
	}
	
	return 0;
}

int gcd(int x, int y)
{
	return y ? gcd(y, x % y) : x;
}

2025/1/12 21:10
加载中...