求证明或证伪该约数和筛法
  • 板块学术版
  • 楼主Federico2903
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/10/12 19:33
  • 上次更新2023/11/2 14:16:08
查看原帖
求证明或证伪该约数和筛法
381949
Federico2903楼主2023/10/12 19:33

rt,考场上纯对着样例找规律。换了 17 种筛法过后过了这道题。

代码在这里。

void sieve(int n) {
	f[1] = 1;
	vis[1] = 1;
	rep (i, 2, n) {
		if (!vis[i]) {
			p.emplace_back(i);
			f[i] = i + 1;
		}
		for (auto j : p) {
			if (i * j > n) break;
			int pos = i * j;
			vis[pos] = 1;
			f[pos] = f[i] * f[j];
			if (i % j == 0) {
				f[pos] -= f[i / j] * j;
				break;
			}
		}
	}
}

其中 fif_i 表示 ii 的约数和。

2023/10/12 19:33
加载中...