#include<bits/stdc++.h>
using namespace std;
int pr[10000002];
void prime()
{
for(int i=2;i<10000002;i++)
pr[i]=1;
for(int i=2;i*i<10000002;i++)
{
if(pr[i]==1)
{
for(int j=2*i;j<10000002;j+=i)
{
pr[j]=0;
}
}
}
}
int main()
{
prime();
int n,x,y,p,q,t,f;
int a[100005],dp[100005];
dp[0]=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
dp[i]=dp[i-1]+pr[a[i]];
}
cin>>t;
while(t--)
{
cin>>f;
switch(f)
{
case 0: cin>>x>>y;
if(pr[a[x]]!=pr[y])
{
if(pr[y]==0)
{
for(int i=x;i<=n;i++)
dp[i]-=1;
}
else
{
for(int i=x;i<=n;i++)
{
dp[i]+=1;
}
}
}
a[x]=y;
// for(int i=1;i<=n;i++)
// cout<<dp[i]<<" ";
// cout<<endl;
break;
case 1: cin>>p>>q;
// cout<<dp[q]<<" "<<dp[p-1]<<endl;
int co=dp[q]-dp[p-1];
cout<<co<<endl;
break;
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IHByWzEwMDAwMDAyXTsKdm9pZCBwcmltZSgpCnsKCWZvcihpbnQgaT0yO2k8MTAwMDAwMDI7aSsrKQoJCXByW2ldPTE7CgkJCglmb3IoaW50IGk9MjtpKmk8MTAwMDAwMDI7aSsrKQoJewoJCWlmKHByW2ldPT0xKQoJCXsKCQkJZm9yKGludCBqPTIqaTtqPDEwMDAwMDAyO2orPWkpCgkJCXsKCQkJCXByW2pdPTA7CgkJCX0KCQl9CQoJfQp9CgppbnQgbWFpbigpCnsKCXByaW1lKCk7CglpbnQgbix4LHkscCxxLHQsZjsKCWludCBhWzEwMDAwNV0sZHBbMTAwMDA1XTsKCWRwWzBdPTA7CgljaW4+Pm47Cglmb3IoaW50IGk9MTtpPD1uO2krKykKCXsKCQljaW4+PmFbaV07Cgl9Cglmb3IoaW50IGk9MTtpPD1uO2krKykKCXsKCSAgICBkcFtpXT1kcFtpLTFdK3ByW2FbaV1dOwoJfQoJCgljaW4+PnQ7Cgl3aGlsZSh0LS0pCgl7CgkJY2luPj5mOwoJCXN3aXRjaChmKQoJCXsKCQkJY2FzZSAwOiBjaW4+Png+Pnk7CgkJCSAgICAgICAgaWYocHJbYVt4XV0hPXByW3ldKQoJCQkgICAgICAgIHsKCQkJICAgICAgICAgICAgaWYocHJbeV09PTApCgkJCSAgICAgICAgICAgIHsKCQkgICAgICAgICAgICAgICAgZm9yKGludCBpPXg7aTw9bjtpKyspCgkJCSAgICAgICAgICAgICAgICAgICAgZHBbaV0tPTE7CgkJCSAgICAgICAgICAgIH0KCQkJICAgICAgICAgICAgZWxzZQoJCQkgICAgICAgICAgICB7CgkJCSAgICAgICAgICAgICAgIGZvcihpbnQgaT14O2k8PW47aSsrKQoJCQkgICAgICAgICAgICAgICB7CgkJCSAgICAgICAgICAgICAgICAgICAgZHBbaV0rPTE7CgkJCSAgICAgICAgICAgICAgIH0KCQkJICAgICAgICAgICAgfQoJCQkgICAgICAgIH0KCQkJCQlhW3hdPXk7CgkJCQkvLwlmb3IoaW50IGk9MTtpPD1uO2krKykKCQkJCS8vCQljb3V0PDxkcFtpXTw8IiAiOwoJCQkJLy8JY291dDw8ZW5kbDsJCgkJCQkJYnJlYWs7CgkJCQkJCgkJCWNhc2UgMTogY2luPj5wPj5xOwoJCQkJLy8JY291dDw8ZHBbcV08PCIgIjw8ZHBbcC0xXTw8ZW5kbDsKCQkJCQlpbnQgY289ZHBbcV0tZHBbcC0xXTsKCQkJCQljb3V0PDxjbzw8ZW5kbDsKCQkJCQlicmVhazsKCQl9Cgl9Cn0=