#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MOD = 1e9 + 7;
const int MODD = 998244353;
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds;
//
//template <typename num_t>
//using ordered_set = tree<num_t, null_type, less<num_t>, rb_tree_tag, tree_order_statistics_node_update>;
void solve(){
int n,k;
cin>>n>>k;
int a[n+1]{};
for(int i=1;i<=n;i++){
cin>>a[i];
}
ll sum=0;
for(int i=1;i<n;i++){
int op1=a[i]/__gcd(a[i],a[i+1]);
sum+=min(op1,k);
}
cout<<min({(ll)a[1]/__gcd(a[1],a[n]),sum,(ll)k*(n-1)})<<'\n';;
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
// freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);
int t = 1;
cin >> t;
//int T = 0;
while (t--)
{
//T++;
//cout<<"Case "<<T<<": ";
solve();
}
return 0;
}