#include<bits/stdc++.h>
using namespace std;
long long n,m,sq,opt,x,y,a[100010],b[100010],pd[100010],l[100010],r[100010],sum[100010],fl;
void add(long long x,long long y)
{
for(int i=x;i<=r[b[x]];i++)
{
if(pd[b[i]])
{
i=r[b[i]];
continue;
}
sum[b[i]]-=a[i]-sqrt(a[i]);
a[i]=sqrt(a[i]);
}
for(int i=l[b[y]];i<=y;i++)
{
if(pd[b[i]])
{
i=r[b[i]];
continue;
}
sum[b[i]]-=a[i]-sqrt(a[i]);
a[i]=sqrt(a[i]);
}
for(int i=r[b[x]]+1;i<=l[b[y]]-1;i++)
{
if(pd[b[i]])
{
i=r[b[i]];
continue;
}
if(i==l[b[i]])
fl=0;
if(i==r[b[i]] && !fl)
pd[b[i]]=1;
if(a[i]>1)
{
sum[b[i]]-=a[i]-sqrt(a[i]);
a[i]=sqrt(a[i]);
fl=1;
}
}
}
void query(long long x,long long y)
{
long long ans=0;
for(int i=x;i<=r[b[x]];i++)
ans+=a[i];
for(int i=l[b[y]];i<=y;i++)
ans+=a[i];
for(int i=b[x]+1;i<=b[y]-1;i++)
ans+=sum[i];
cout<<ans<<endl;
}
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define QwQ return 0;
int main()
{
IOS;
cin>>n;
sq=sqrt(n);
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
{
l[i]=r[i-1]+1;
r[i]=min(sq*i,n);
for(int j=l[i];j<=r[i];j++)
b[j]=i,sum[i]+=a[j];
}
cin>>m;
while(m--)
{
cin>>opt>>x>>y;
if(x>y)
swap(x,y);
if(opt==0)
add(x,y);
else
query(x,y);
}
QwQ;
}