ARC060B题解
Description:
确定最小正整数 \(b\),使得给定正整数 \(n\) 在 \(b\) 进制下的个数位和为 \(s\)。
\(1\leq n,s\leq10^{11}\)
首先分类。
- \(s>n\),显然无解。
- \(s=n\),答案为 \(n+1\)。
- \(s<n\),见下:
Sol.1
设 \(n\) 在 \(b\) 进制下每一位数分别为 \(a_1,a_2,\ldots,a_m\),那么有以下两个等式:
\[a_1+a_2\times b+a_3\times b^2+\ldots+a_m\times b^{m-1}=n\\a_1+a_2+a_3+\ldots+a_m=s
\]
上下两式相减,可得
\[a_2\times(b-1)+a_3\times(b-1)(b+1)+a_4\times(b-1)(b^2+b+1)+\ldots+a_m\times(b-1)(b^{m-2}+b^{m-3}+\ldots+b+1)=n-s
\]
所以
\[b-1\mid n-s
\]
于是我们只需要做所有 \(n-s\) 的因数并进行试验即可。时间复杂度 \(O(\log n\sqrt n)\)。
Sol.2
分类。
- \(b\leq \sqrt n\),暴力求解即可。
- \(b>\sqrt n\),则 \(b\) 进制数最多两位。设该数为 \(\overline{pq}\),则有
\[p+q=s \\ p\times b+q=n
\]
由于 \(b>\sqrt n\),所以 \(p<\sqrt n\)。枚举 \(p\),可得 \(b=\dfrac{n-s+p}{p}\)。取这些 \(b\) 的最小值即可。时间复杂度 \(O(\log n\sqrt n)\)。