#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int b[100001]={0},count1=0;
bool arr[100001]{1,1,0,0};
int func(int i,int *a)
{ if(b[i]!=0)
return 1;
if(a[i]==0)
{b[i]=1;
return 1;
}
if(b[a[i]]==0)
b[i]=1+func(a[i],a);
else
b[i]=1+b[a[i]];
if(b[i]+i-1==2 || ((b[i]+i-1)%2!=0 && arr[(b[i]+i-1)]==0))
count1++;
return b[i];
}
int main() {
// your code goes here
int t,i,j;
cin>>t;
arr[1]=1;
for(i=3;i*i<316;i=i+2)
{
if(arr[i]!=1)
{
for(j=i*i;j<=10000;j=j+2*i)
{
arr[j]=1;
}
}
}
while(t--)
{
int a[100002],i,n;
count1=0;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i];
b[i]=0;
}
for(i=1;i<=n;i++)
{func(i,a);
}
cout<<count1<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgYlsxMDAwMDFdPXswfSxjb3VudDE9MDsKYm9vbCBhcnJbMTAwMDAxXXsxLDEsMCwwfTsKaW50IGZ1bmMoaW50IGksaW50ICphKQp7ICAgaWYoYltpXSE9MCkKICAgICByZXR1cm4gMTsKCWlmKGFbaV09PTApCgl7YltpXT0xOwoJcmV0dXJuIDE7Cgl9CglpZihiW2FbaV1dPT0wKQoJYltpXT0xK2Z1bmMoYVtpXSxhKTsKCWVsc2UKCWJbaV09MStiW2FbaV1dOwoJaWYoYltpXStpLTE9PTIgfHwgKChiW2ldK2ktMSklMiE9MCAmJiBhcnJbKGJbaV0raS0xKV09PTApKQoJY291bnQxKys7CglyZXR1cm4gYltpXTsKCQp9CmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IHQsaSxqOwoJY2luPj50OwoJYXJyWzFdPTE7CgkJZm9yKGk9MztpKmk8MzE2O2k9aSsyKQoJICAgIHsgCgkgICAgaWYoYXJyW2ldIT0xKQoJICAgICAgIHsKCSAgICAgICAgZm9yKGo9aSppO2o8PTEwMDAwO2o9aisyKmkpCgkgICAgICAgIHsKCSAgICAgICAgICAgIGFycltqXT0xOwoJICAgICAgICB9CgkgICAgICAgfQoJICAgIH0KCXdoaWxlKHQtLSkKCXsKCWludCBhWzEwMDAwMl0saSxuOwoJY291bnQxPTA7CgljaW4+Pm47Cglmb3IoaT0xO2k8PW47aSsrKQoJewoJCWNpbj4+YVtpXTsKCQliW2ldPTA7Cgl9Cglmb3IoaT0xO2k8PW47aSsrKQoJICB7ZnVuYyhpLGEpOwoJICB9CQoJICBjb3V0PDxjb3VudDE8PCJcbiI7Cgl9CgkKCXJldHVybiAwOwp9