給你一個有N個數的集合S和一個數X,判斷是否存在S的一個子集,子集裡的數的最小公倍數正好是X。
第一行是數據組數T。 接下來有多組數據,每組數據包含兩行: 第一行有2個數N和X,1<=N<=100000 ,X<=10^9。 第二行給出N個數,1<=S[i]<=10^9。
對於每一組數據,輸出一行"Case #X: Y",X是第幾組數據,Y是Yes或No。
2 4 20 2 3 4 5 3 61 3 4 5
Case #1: Yes Case #2: No
HL
#includeint main() { int n,x,a[100005],aa,max,t,tm,flog,j,i,k; scanf("%d",&t); tm=t; while(t--) { scanf("%d%d",&n,&x); max=0; flog=0;k=0; for( i=0; i max) max=aa; } } for( i=1; i*max<=x; i++)//求集合的最小公倍數 { for( j=0; j