主要是不会快读快写和循环展开。
#include<bits/stdc++.h>
using namespace std;
int i,j,l,r,x,n,m,type,num[100001];
long long s;
int main()
{
scanf("%d%d",&n,&m);
for(register int i=1;i<=n;i++)
scanf("%d",&num[i]);
for(i=1;i<=m;i++)
{
scanf("%d",&type);
if(type==1)
{
scanf("%d%d%d",&l,&r,&x);
for(register int j=l;j<=r;j++)
if(num[j]%x==0)
num[j]/=x;
}
else
{
s=0;
scanf("%d%d",&l,&r);
for(register int j=l;j<=r;j++)
s+=num[j];
printf("%lld\n",s);
}
}
return 0;
}