#include<bits/stdc++.h>
using namespace std;
struct tree
{
int c2;
int c5;
int c0;
int lazy;
};
tree st[400005];
int a[100005];
void construct(int s,int e,int i)
{
if(s==e)
{
int x=a[s];
st[i].lazy=-1;
st[i].c2=0;
st[i].c5=0;
if(a[s]==0)
st[i].c0=1;
else
st[i].c0=0;
while(x%5==0&&x)
{
x=x/5;
st[i].c5++;
}
while(x%2==0&&x)
{
x=x/2;
st[i].c2++;
}
return;
}
int mid=(s+e)/2;
construct(s,mid,2*i);
construct(mid+1,e,2*i+1);
st[i].lazy=-1;
st[i].c2=st[2*i].c2+st[2*i+1].c2;
st[i].c5=st[2*i].c5+st[2*i+1].c5;
st[i].c0=st[2*i].c0+st[2*i+1].c0;
}
void update(int s,int e,int l,int r,int val,int i)
{
if(st[i].lazy!=-1)
{
int x=st[i].lazy;
int t=0,f=0;
while(x%2==0&&x)
{
x=x/2;
t++;
}
while(x%5==0&&x)
{
x=x/5;
f++;
}
st[i].c2=(e-s+1)*t;
st[i].c5=(e-s+1)*f;
st[i].c0=(e-s+1)*(st[i].lazy==0);
if(s!=e)
{
st[2*i].lazy=st[i].lazy;
st[2*i+1].lazy=st[i].lazy;
}
st[i].lazy=-1;
}
if(e<l||s>r)
return;
if(s>=l&&e<=r)
{
int x=val;
int t=0,f=0;
while(x%2==0&&x)
{
x=x/2;
t++;
}
while(x%5==0&&x)
{
x=x/5;
f++;
}
st[i].c2=(e-s+1)*t;
st[i].c5=(e-s+1)*f;
st[i].c0=(e-s+1)*(val==0);
if(s!=e)
{
st[2*i].lazy=val;
st[2*i+1].lazy=val;
}
return;
}
int mid=(s+e)/2;
update(s,mid,l,r,val,2*i);
update(mid+1,e,l,r,val,2*i+1);
st[i].c2=st[2*i].c2+st[2*i+1].c2;
st[i].c5=st[2*i].c5+st[2*i+1].c5;
st[i].c0=st[2*i].c0+st[2*i+1].c0;
}
tree query(int s,int e,int l,int r,int i)
{
if(st[i].lazy!=-1)
{
int x=st[i].lazy;
int t=0,f=0;
while(x%2==0&&x)
{
x=x/2;
t++;
}
while(x%5==0&&x)
{
x=x/5;
f++;
}
st[i].c2=(e-s+1)*t;
st[i].c5=(e-s+1)*f;
st[i].c0=(e-s+1)*(st[i].lazy==0);
if(s!=e)
{
st[2*i].lazy=st[i].lazy;
st[2*i+1].lazy=st[i].lazy;
}
st[i].lazy=-1;
}
if(e<l||s>r)
{
tree temp;
temp.c2=0;
temp.c5=0;
temp.c0=0;
return temp;
}
if(s>=l&&e<=r)
{
return st[i];
}
int mid=(s+e)/2;
tree temp,le,ri;
le=query(s,mid,l,r,2*i);
ri=query(mid+1,e,l,r,2*i+1);
temp.c2=le.c2+ri.c2;
temp.c5=le.c5+ri.c5;
temp.c0=le.c0+ri.c0;
return temp;
}
int main()
{
//freopen("input49.txt","r",stdin);
//freopen("output49.txt","w",stdout);
int n,i,j,v,l,q;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
construct(1,n,1);
cin>>q;
while(q--)
{
scanf("%d",&l);
if(l)
{
scanf("%d %d",&i,&j);
tree temp;
temp=query(1,n,i,j,1);
if(temp.c0)
printf("%d\n",1);
else
printf("%d\n",min(temp.c2,temp.c5));
}
else
{
scanf("%d %d %d",&i,&j,&v);
update(1,n,i,j,v,1);
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IHRyZWUKewogICAgaW50IGMyOwogICAgaW50IGM1OwogICAgaW50IGMwOwogICAgaW50IGxhenk7Cn07CnRyZWUgc3RbNDAwMDA1XTsKaW50IGFbMTAwMDA1XTsKdm9pZCBjb25zdHJ1Y3QoaW50IHMsaW50IGUsaW50IGkpCnsKICAgIGlmKHM9PWUpCiAgICB7CiAgICAgICAgaW50IHg9YVtzXTsKICAgICAgICBzdFtpXS5sYXp5PS0xOwogICAgICAgIHN0W2ldLmMyPTA7CiAgICAgICAgc3RbaV0uYzU9MDsKICAgICAgICBpZihhW3NdPT0wKQogICAgICAgICAgICBzdFtpXS5jMD0xOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBzdFtpXS5jMD0wOwogICAgICAgIHdoaWxlKHglNT09MCYmeCkKICAgICAgICB7CiAgICAgICAgICAgeD14LzU7CiAgICAgICAgICAgc3RbaV0uYzUrKzsKICAgICAgICB9CiAgICAgICAgd2hpbGUoeCUyPT0wJiZ4KQogICAgICAgIHsKICAgICAgICAgICB4PXgvMjsKICAgICAgICAgICBzdFtpXS5jMisrOwogICAgICAgIH0KICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkPShzK2UpLzI7CiAgICBjb25zdHJ1Y3QocyxtaWQsMippKTsKICAgIGNvbnN0cnVjdChtaWQrMSxlLDIqaSsxKTsKICAgIHN0W2ldLmxhenk9LTE7CiAgICBzdFtpXS5jMj1zdFsyKmldLmMyK3N0WzIqaSsxXS5jMjsKICAgIHN0W2ldLmM1PXN0WzIqaV0uYzUrc3RbMippKzFdLmM1OwogICAgc3RbaV0uYzA9c3RbMippXS5jMCtzdFsyKmkrMV0uYzA7Cn0Kdm9pZCB1cGRhdGUoaW50IHMsaW50IGUsaW50IGwsaW50IHIsaW50IHZhbCxpbnQgaSkKewogICAgaWYoc3RbaV0ubGF6eSE9LTEpCiAgICB7CiAgICAgICAgaW50IHg9c3RbaV0ubGF6eTsKICAgICAgICBpbnQgdD0wLGY9MDsKICAgICAgICB3aGlsZSh4JTI9PTAmJngpCiAgICAgICAgewogICAgICAgICAgICB4PXgvMjsKICAgICAgICAgICAgdCsrOwogICAgICAgIH0KICAgICAgICB3aGlsZSh4JTU9PTAmJngpCiAgICAgICAgewogICAgICAgICAgICB4PXgvNTsKICAgICAgICAgICAgZisrOwogICAgICAgIH0KICAgICAgICBzdFtpXS5jMj0oZS1zKzEpKnQ7CiAgICAgICAgc3RbaV0uYzU9KGUtcysxKSpmOwogICAgICAgIHN0W2ldLmMwPShlLXMrMSkqKHN0W2ldLmxhenk9PTApOwogICAgICAgIGlmKHMhPWUpCiAgICAgICAgewogICAgICAgICAgICBzdFsyKmldLmxhenk9c3RbaV0ubGF6eTsKICAgICAgICAgICAgc3RbMippKzFdLmxhenk9c3RbaV0ubGF6eTsKICAgICAgICB9CiAgICAgICAgc3RbaV0ubGF6eT0tMTsKICAgIH0KICAgIGlmKGU8bHx8cz5yKQogICAgICAgIHJldHVybjsKICAgIGlmKHM+PWwmJmU8PXIpCiAgICB7CiAgICAgICBpbnQgeD12YWw7CiAgICAgICAgaW50IHQ9MCxmPTA7CiAgICAgICAgd2hpbGUoeCUyPT0wJiZ4KQogICAgICAgIHsKICAgICAgICAgICAgeD14LzI7CiAgICAgICAgICAgIHQrKzsKICAgICAgICB9CiAgICAgICAgd2hpbGUoeCU1PT0wJiZ4KQogICAgICAgIHsKICAgICAgICAgICAgeD14LzU7CiAgICAgICAgICAgIGYrKzsKICAgICAgICB9CiAgICAgICAgc3RbaV0uYzI9KGUtcysxKSp0OwogICAgICAgIHN0W2ldLmM1PShlLXMrMSkqZjsKICAgICAgICBzdFtpXS5jMD0oZS1zKzEpKih2YWw9PTApOwogICAgICAgIGlmKHMhPWUpCiAgICAgICAgewogICAgICAgICAgICBzdFsyKmldLmxhenk9dmFsOwogICAgICAgICAgICBzdFsyKmkrMV0ubGF6eT12YWw7CiAgICAgICAgfQogICAgICAgIHJldHVybjsKICAgIH0KICAgIGludCBtaWQ9KHMrZSkvMjsKICAgIHVwZGF0ZShzLG1pZCxsLHIsdmFsLDIqaSk7CiAgICB1cGRhdGUobWlkKzEsZSxsLHIsdmFsLDIqaSsxKTsKICAgIHN0W2ldLmMyPXN0WzIqaV0uYzIrc3RbMippKzFdLmMyOwogICAgc3RbaV0uYzU9c3RbMippXS5jNStzdFsyKmkrMV0uYzU7CiAgICBzdFtpXS5jMD1zdFsyKmldLmMwK3N0WzIqaSsxXS5jMDsKfQp0cmVlIHF1ZXJ5KGludCBzLGludCBlLGludCBsLGludCByLGludCBpKQp7CiAgICBpZihzdFtpXS5sYXp5IT0tMSkKICAgIHsKICAgICAgICBpbnQgeD1zdFtpXS5sYXp5OwogICAgICAgIGludCB0PTAsZj0wOwogICAgICAgIHdoaWxlKHglMj09MCYmeCkKICAgICAgICB7CiAgICAgICAgICAgIHg9eC8yOwogICAgICAgICAgICB0Kys7CiAgICAgICAgfQogICAgICAgIHdoaWxlKHglNT09MCYmeCkKICAgICAgICB7CiAgICAgICAgICAgIHg9eC81OwogICAgICAgICAgICBmKys7CiAgICAgICAgfQogICAgICAgIHN0W2ldLmMyPShlLXMrMSkqdDsKICAgICAgICBzdFtpXS5jNT0oZS1zKzEpKmY7CiAgICAgICAgc3RbaV0uYzA9KGUtcysxKSooc3RbaV0ubGF6eT09MCk7CiAgICAgICAgaWYocyE9ZSkKICAgICAgICB7CiAgICAgICAgICAgIHN0WzIqaV0ubGF6eT1zdFtpXS5sYXp5OwogICAgICAgICAgICBzdFsyKmkrMV0ubGF6eT1zdFtpXS5sYXp5OwogICAgICAgIH0KICAgICAgICBzdFtpXS5sYXp5PS0xOwogICAgfQogICAgaWYoZTxsfHxzPnIpCiAgICB7CiAgICAgICAgdHJlZSB0ZW1wOwogICAgICAgIHRlbXAuYzI9MDsKICAgICAgICB0ZW1wLmM1PTA7CiAgICAgICAgdGVtcC5jMD0wOwogICAgICAgIHJldHVybiB0ZW1wOwogICAgfQogICAgaWYocz49bCYmZTw9cikKICAgIHsKICAgICAgICByZXR1cm4gc3RbaV07CiAgICB9CiAgICBpbnQgbWlkPShzK2UpLzI7CiAgICB0cmVlIHRlbXAsbGUscmk7CiAgICBsZT1xdWVyeShzLG1pZCxsLHIsMippKTsKICAgIHJpPXF1ZXJ5KG1pZCsxLGUsbCxyLDIqaSsxKTsKICAgIHRlbXAuYzI9bGUuYzIrcmkuYzI7CiAgICB0ZW1wLmM1PWxlLmM1K3JpLmM1OwogICAgdGVtcC5jMD1sZS5jMCtyaS5jMDsKICAgIHJldHVybiB0ZW1wOwp9CmludCBtYWluKCkKewogICAgLy9mcmVvcGVuKCJpbnB1dDQ5LnR4dCIsInIiLHN0ZGluKTsKICAgIC8vZnJlb3Blbigib3V0cHV0NDkudHh0IiwidyIsc3Rkb3V0KTsKICAgIGludCBuLGksaix2LGwscTsKICAgIHNjYW5mKCIlZCIsJm4pOwogICAgZm9yKGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBzY2FuZigiJWQiLCZhW2ldKTsKICAgIH0KICAgIGNvbnN0cnVjdCgxLG4sMSk7CiAgICBjaW4+PnE7CiAgICB3aGlsZShxLS0pCiAgICB7CiAgICAgICAgc2NhbmYoIiVkIiwmbCk7CiAgICAgICAgaWYobCkKICAgICAgICB7CiAgICAgICAgICAgIHNjYW5mKCIlZCAlZCIsJmksJmopOwogICAgICAgICAgICB0cmVlIHRlbXA7CiAgICAgICAgICAgIHRlbXA9cXVlcnkoMSxuLGksaiwxKTsKICAgICAgICAgICAgaWYodGVtcC5jMCkKICAgICAgICAgICAgICAgIHByaW50ZigiJWRcbiIsMSk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHByaW50ZigiJWRcbiIsbWluKHRlbXAuYzIsdGVtcC5jNSkpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBzY2FuZigiJWQgJWQgJWQiLCZpLCZqLCZ2KTsKICAgICAgICAgICAgdXBkYXRlKDEsbixpLGosdiwxKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=