#include<bits/stdc++.h>
using namespace std;
const int N=100010;
void solve(){
int n,sum=0,mx=0;
int a[N];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
sum+=a[i];//石子总和
mx=max(mx,a[i]);//找出最多的那堆石子
}
if(sum==0){//如果每堆石子都为0 则不用合并
cout<<0<<endl;
return;//直接结束掉
}
for(int i=mx;i<=sum;i++){//最终每堆石子的个数必须是总数的因数 这样才有可能是整数组
if(sum%i) continue;//如果不是因子则跳过
else{
int j,ssum=0;//ssum用于存相邻石子合并后的总数
bool st=true;
for(j=0;j<n;j++){
ssum+=a[j];
if(ssum==i) ssum=0;
else if(ssum>i) {
st=false;//如果相邻的不符合条件 则标记为false
break;
}
}
if(st&&j==n){
cout<<n-(sum/i)<<endl;//合并的次数=总堆数-总石子数除最终每堆石子的个数(即最后剩多少堆)
return;
}
}
}
}
int main(){
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}