[luogu p8255] [NOI Online 2022 入门组] 数学游戏
\(\mathtt{Link}\)
P8255 [NOI Online 2022 入门组] 数学游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
\(\mathtt{Description}\)
\(t\) 组多测。
每组给定 \(x, z\),求最小的满足 \(x \times y \times \gcd(x, y) = z\) 的 \(y\)。\(y\) 不保证有解。
\(\mathtt{Data} \text{ } \mathtt{Range} \text{ } \mathtt{\&} \text{ } \mathtt{Restrictions}\)
- \(1 \le t \le 5 \times 10^5\)
- \(1 \le x \le 10^9\)
- \(1 \le z < 2^{63}\)
\(\mathtt{Solution}\)
首先看到这个题,有一个非常明显的东西:
如果有解,肯定 \(x | z\),那么我们的第一步应该是判断掉 \(x \nmid z\) 的情况。其次考虑令 \(k = \dfrac{z}{x}\),问题转化为满足 \(y \times \gcd(x, y) = k\) 的最小的 \(y\)。
其次我们发现:最小的 \(y\) 挺迷惑的,可以证明的是 \(y\) 至多只能有 \(1\) 个解。
令 \(g = \gcd(x, y)\),设 \(a = \dfrac{x}{g}\),\(b = \dfrac{y}{g}\)。进一步转化为 \(k = b \times g^2\),同时得到 $ x = a \times g$, \(y = b \times g\), \(\gcd(a, b) = 1\)。
想到这样一个性质:\(\gcd(a, b) = 1 \ \Rightarrow \ \gcd(r \times a^s, r \times b^t) = r\)。
考虑到 \(x = a \times g\),\(k=b\times g^2\)。此时我们发现,令 \(r = g^2\),\(s = 2\),\(t = 1\),就能得到 \(g^2=\gcd(a^2 \times g^2, b \times g^2) = \gcd(x^2, k)\)。我们就能用已知表示出 \(g\) 了。
接下来构造 \(y\) 即可。具体地:
当 \(\gcd(x^2, k)\) 不为完全平方数时,无解。
同时我们还能发现,\(y\) 至多只能有一个解。有没有什么简洁美丽的证明证明此题中 \(y\) 至多只能有 \(1\) 个解? - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
\(\mathtt{Time} \text{ } \mathtt{Complexity}\)
我不知道。sqrt复杂度是多少????
\(\mathtt{Code}\)
//大无语纯数学题。码力考察0,不上代码
不错的题!