提交时间:2024-01-21 14:04:24
运行 ID: 120949
#include <bits/stdc++.h> #define int long long using namespace std; int mp[1000005], a[1000005], n, m; signed main(){ scanf("%lld%lld", &n, &m); for (int i=1; i<=n; i++) scanf("%lld", &a[i]); while (m--) { int op, x, y; scanf("%lld%lld", &op, &x); if (op == 1) { scanf("%lld", &y); mp[x] += y; } else { int sq = (int)sqrt(x), ans=a[x]; for (int i=1; i<=sq; i++) { if (x%i) continue; int j = x/i; if (i == j) { ans += mp[i]; } else { ans += mp[i] + mp[j]; } } printf("%lld\n", ans); } } return 0; }