#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll t,n,e;
ll i,j,x;
int su(ll a)
{
ll i;
if(a<=1) return 0;
else
{
for(i=2;i*i<=a;i++)
if(a%i==0) return 0;
return 1;
}
}//判断素数
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>t;
for(x=0;x<t;x++)
{ cin>>n>>e;
ll d;
vector<ll> a(n+1);
for(i=1;i<=n;i++)
{cin>>d;
a[i]=d;
}
ll l,f,c;
c=0;
//for(i=0;i<n;i++)
//cout<<a[i]<<endl;
for(i=1;i<n+1;i++)
{
if(su(a[i])==1)
{ l=f=0;
for(j=i;j>=1;j-=e)
{
if(a[j]==1)
l++;
else if(j!=i)j=0;//不是素数不是1就跳出循环
}
for(j=i;j<=n;j+=e)
{
if(a[j]==1)
f++;
else if(j!=i)j=n+1;//不是素数不是1就跳出循环
}
c+=(f+1)*(l+1)-1;//统计次数
}
}
cout<<c<<endl;
}
return 0;
}
/*泛舟沧海,立马昆仑*/
/*若你为了错过太阳而哭泣,那么你也将错过群星了*/
/*红了樱桃,绿了芭蕉*/
思路题
也可以用线性筛