#include<iostream>
using namespace std;
long long n,m;
long long a[1000005];
struct node
{
int caozuo;
long long l,r;
long long x;
};
node st[1000005];
int main()
{
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<m;i++)
{
cin>>st[i].caozuo;
if(st[i].caozuo==1)
{
cin>>st[i].l>>st[i].r>>st[i].x;
}
else if(st[i].caozuo==2)
{
cin>>st[i].l>>st[i].r;
}
}
for(int i=0;i<m;i++)
{
if(st[i].caozuo==1)
{
for(int j=l;j<=r;j++)
{
if(a[j]%x==0)
{
a[j]=a[j]/x;
}
}
}
else if(st[i].caozuo==2)
{
int sum=0;
for(int k=l;k<=r;k++)
{
sum+=a[k];
}
cout<<sum<<endl;
}
}
return 0;
}