记录编号 531979 评测结果 AAAAAAAAAAAAAAAAAAAAAAAAA
题目名称 [UVA 11426] [济南集训 2017] 求gcd之和 最终得分 100
用户昵称 Gravatardjj 是否通过 通过
代码语言 C++ 运行时间 6.455 s
提交时间 2019-05-22 16:15:00 内存使用 89.95 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define int long long

using namespace std;

int f[10000010], ans;
int n, m;

signed main() {
	freopen("hoip.in", "r", stdin);
	freopen("hoip.out", "w", stdout);
	scanf("%d %d", &n, &m);
	if (n > m) n ^= m ^= n ^= m;
	for (register int i = n; i; -- i) {
		f[i] = (n / i) * (m / i);
		for (register int j = 2 * i; j <= n; j += i)
			f[i] -= f[j];
		ans += (2 * i - 1) * f[i];
	}
	printf("%lld\n", ((ans + n * m) / 2) % 998244353);
	return 0;
}