社区讨论

RE 求助

P10724[GESP202406 七级] 区间乘积参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mcde3fho
此快照首次捕获于
2025/06/26 20:58
8 个月前
此快照最后确认于
2025/11/04 06:57
4 个月前
查看原帖
报错信息:Runtime Error. Received signal 8: Floating-point exception.
CPP
#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;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...