报错信息:Runtime Error. Received signal 8: Floating-point exception.
#include <cstdio>
constexpr int MAXN = 1e5 + 5;
constexpr int MAXA = 35;
int n, a, ans;
unsigned long long sub[MAXN];
constexpr int m = 11, prime[m] = {4, 9, 25, 49, 121, 169, 289, 361, 529, 841, 961};
int simplified(int x) {
for (int i = 0; prime[i] <= x && i < m; ++i) {
while (!(x % prime[i])) {
x /= prime[i];
}
}
return x;
}
int main() {
scanf("%d", &n);
for (int i = 0; i < n; ++i) {
scanf("%d", &a);
a = simplified(a);
if (i) {
sub[i] = sub[i - 1] * a;
} else {
sub[0] = a;
}
}
sub[n] = sub[n - 1] * sub[n - 1];
for (int i = 0; i < n; ++i) {
for (int j = i; j < n; ++j) {
if (simplified(sub[j + 1] / sub[i]) == 1) {
++ans;
}
}
}
printf("%d", ans);
return 0;
}