#include<iostream>
#include<stdio.h>
#include<cstdio>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<vector>
#include <unordered_map>
#include<climits>
#include<set>
#include <iomanip>
#include<numeric>
#include<queue>
#include<stack>
#include <map>

using namespace std;

#define ff              first
#define ss              second
#define ll              long long
#define ld              long double
#define pb              push_back
#define mp              make_pair
#define mt              make_tuple
#define pii             pair<ll,ll>
#define vi              vector<ll>
#define mii             map<ll,ll>
#define pqb             priority_queue<ll>
#define pqs             priority_queue<ll,vi,greater<ll> >
#define mod             1000000007
#define inf             1e18
#define all(v)          (v).begin(),(v).end()
#define ps(x,y)         fixed<<setprecision(y)<<x
#define mk(arr,n,type)  type *arr=new type[n];
#define FIO             ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define endl            "\n"

int main(){

    FIO ;
    int t ;
    t =1  ;
    cin >> t ;

    while(t--){
      ll n ,p ;
      cin >> n >> p;
      ll ans[n-1] ;
      for(int i = 0 ; i < n-1 ; i++){
          ans[i] = p ; 
    }
      ll arr[n];
      for(int i = 0 ; i < n ; i++){
          cin >> arr[i] ; 
      }
      ll mn = arr[0] ; 
      ll mni =0  ;
      for(int i = 1 ; i < n ; i++){
          if(arr[i]%mn){
              for(int j = 0 ; j < i - 1 - mni ; j++){
                  ans[mni + j] = min(ans[mni+j],mn) ;  
              }
              mn = arr[i] ;
              mni = i ; 
          }
      }
      for(int j = 0 ; j < n - 1 - mni ; j++){
            ans[mni + j] = min(ans[mni+j],mn) ;  
       }
            

       mn = arr[n-1] ;
       mni = n-1; 
       for(int i = n-2 ; i >=0 ; i--){
          if(arr[i]%mn){
              for(int j = 0 ; j < mni - (i + 1) ; j++){
                  ans[mni - j -1 ] = min(ans[mni-j-1],mn) ;  
              }
              mn = arr[i] ;
              mni = i ; 
          }
      }
      
      for(int j = 0 ; j < mni  ; j++){
            ans[mni - j-1] = min(ans[mni-j-1],mn) ;  
       }
      ll res= 0 ;
      for(int i = 0 ; i < n -1 ; i++){
          res += ans[i] ;
      }
      cout <<res << endl;  
 



    }
    return 0 ;

}
