照题解思路打的 50分 求大佬帮忙看看哪儿错了
#include<bits/stdc++.h>
using namespace std;
long long n,m,k,d,x,y;
int a[1000005],h[100005];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
for(int i=1;i<=m;i++)
{
scanf("%lld",&d);
if(d==1)k++,scanf("%lld%lld",&x,&y),h[x]+=y;
if(d==2)
{
scanf("%lld",&x);
int ans=a[x];
for(int j=1;j<=sqrt(x);j++)
if(x%j==0)
{
if(h[j])ans+=h[j];
if(x/j!=j&&h[x/j])ans+=h[x/j];
}
printf("%d\n",ans);
}
}
return 0;
}