#include #include #include #include #include #include #include #include #include #include #include #include #include #define mem(x,y) memset(x,y,sizeof(x)) #define pb push_back using namespace std; typedef long long ll; typedef pair pii; #define bug puts("==========="); const double pi=(acos(-1.0)); const double eps=1e-8; const ll INF=1e18+10; const ll inf=1e14; const int maxn=1000+10; const int mod=100000007; /*===============================*/ int a[maxn]; ll dp[maxn][maxn]; int main() { int T_T; scanf("%d",&T_T); while(T_T--){ int n; scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",a+i); mem(dp,0); dp[1][a[1]]=1; int maxx=a[1]; for(int i=2;i<=n;i++){ for(int j=1;j<=maxx;j++)if(dp[i-1][j]){ dp[i][j]=(dp[i][j]+dp[i-1][j])%mod; int z=__gcd(j,a[i]); dp[i][z]=(dp[i][z]+dp[i-1][j])%mod; } dp[i][a[i]]++; maxx=max(maxx,a[i]); } ll ans=0; for(int j=1;j<=1000;j++){ ans+= dp[n][j]*j; ans%= mod; } printf("%I64d\n",ans); } return 0; }