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));

}