yy了一个sqrt的玩意,不过因为n在变所以没有保障啊。
肯定不是正解了。
1s的题跑了1.3s居然AC,好厉害。
#include <cstdio>
typedef long long dint;
#ifdef WIN32
#define lld "%I64d"
#else
#define lld "%lld"
#endif
dint calc(dint n, dint k) {
if (n <= 1)
return k;
for (dint i = 1, j; i <= k; i = j + 1) {
if (n <= i)
return k;
j = (n - 1) / ((n - 1) / i);
if (j > k)
j = k;
n = ((n - 1) / i + 1) * j;
}
return n;
}
int main() {
int i = 0;
dint n, k;
while (scanf(lld lld, &n, &k) != EOF)
if (!n && !k)
break;
else
printf("Case #%d: " lld "\n", ++ i, calc(n, k));
}