#include<bits/stdc++.h>
#define ll long long
#define ld long double
using namespace std;
const int N=1e5+10,M=500;
int n,m,len;
long long a[N],sum[M];
bool b[M];
ll read()
{
ll x=0,f=1;char ch=getchar();
while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
void write(ll x)
{
if(x<0)
putchar('-'),x=-x;
if(x>9)
write(x/10);
putchar(x%10+'0');
}
void FK_change(int l,int r)
{
int sl=l/len,sr=r/len;
bool f=1;
if(sl==sr)
{
if(b[sl])
return;
for(int i=l;i<=r;i++)
sum[sl]+=sqrt(a[i])-a[i],a[i]=sqrt(a[i]);
for(int i=sl*len;i<(sl+1)*len&&i<=n;i++)
if(a[i]>1)
f=0;
b[sl]=f;
return;
}
FK_change(l,(sl+1)*len-1);
FK_change(sr*len,r);
for(int i=sl+1;i<sr;i++)
{
f=1;
if(b[i])
continue;
for(int j=i*len;j<(i+1)*len&&j<=n;j++)
sum[i]+=sqrt(a[j])-a[j],a[j]=sqrt(a[j]);
for(int j=i*len;j<(i+1)*len&&j<=n;j++)
if(a[j]>1)
f=0;
b[i]=f;
}
}
ll FK_q(int l,int r)
{
ll ans=0;
int sl=l/len,sr=r/len;
if(sl==sr)
{
for(int i=l;i<=r;i++)
ans+=a[i];
return ans;
}
ans=FK_q(l,min(n,(sl+1)*len-1))+FK_q(sr*len,r);
for(int i=sl+1;i<sr;i++)
ans+=sum[i];
return ans;
}
int main()
{
ll T=0;
while(cin>>n)
{
memset(sum,0,sizeof(sum));
memset(b,0,sizeof(b));
memset(a,0,sizeof(a));
T++;
len=sqrt(n);
printf("Case #%lld:\n",T);
for(int i=1;i<=n;i++)
a[i]=read();
m=read();
for(int i=1;i<=n;i++)
sum[i/len]+=a[i];
int op,x,y;
while(m--)
{
op=read();
x=read();
y=read();
if(x>y)
swap(x,y);
if(op)
printf("%lld\n",FK_q(x,y));
else
FK_change(x,y);
}
puts("");
}
return 0;
}