#include<bits/stdc++.h>
using namespace std;
long long int a[400002],c[400002],f[400002];
long long int lowbit(long long int x)
{
return (x&(-x));
}
long long int find(long long int x)
{
if(f[x]==x)
{
return x;
}
else
{
return f[x]=find(f[x]);
}
}
long long int getsum(long long int x)
{
long long int ans=0,i;
for(i=x;i>0;i-=lowbit(i))
{
ans+=c[i];
}
return ans;
}
void add(long long int n,long long int x,long long int key)
{
long long int i;
for(i=x;i<=n;i+=lowbit(i))
{
c[i]+=key;
}
}
int main()
{
long long int n,m,i,pd,l,r,num,sum=0;
while(cin>>n)
{
sum++;
memset(c,0,sizeof(c));
for(i=1;i<=n;i++)
{
cin>>a[i];
f[i]=i;
add(n,i,a[i]);
}
f[n+1]=n+1;
cin>>m;
cout<<"Case #"<<sum<<":"<<endl;
for(i=1;i<=m;i++)
{
cin>>pd>>l>>r;
if(l>r)
{
swap(l,r);
}
if(pd==0)
{
while(l<=r)
{
num=sqrt(a[l]);
add(n,l,num-a[l]);
a[l]=num;
if(a[l]<=1)
{
f[l]=l+1;
l=find(f[l]);
}
else
{
f[l]=l;
l++;
}
}
}
if(pd==1)
{
cout<<getsum(r)-getsum(l-1)<<endl;
}
}
cout<<endl;
}
return 0;
}