/*题意:给你一个数x,给你K次操作,每一次x变为大于等于 x 且是 i 的倍数的数。
解题思路:可以知道 如果 变化以后 x 是i 和 i+1 的公倍数的倍数的话,那么x的值是不会变的,
x < i * i 的时候,x值肯定会变,每一次增大i(这里后面就可以直接用公式)
所以我们只需要枚举到前面那种情况就可以了。因为当i*(i+1)>x时,以后的每一步x都要变,于是就直接不变用来变最后一步
x/i*k;*/
解题思路:可以知道 如果 变化以后 x 是i 和 i+1 的公倍数的倍数的话,那么x的值是不会变的,
x < i * i 的时候,x值肯定会变,每一次增大i(这里后面就可以直接用公式)
所以我们只需要枚举到前面那种情况就可以了。因为当i*(i+1)>x时,以后的每一步x都要变,于是就直接不变用来变最后一步
x/i*k;*/
#include<iostream>
#include<cstring>
#define ll __int64
using namespace std;
int main()
{
ll x,k;
ll cas=0;
ll i;
while(1)
{
scanf("%I64d%I64d",&x,&k);
if(!(x||k)) break;
cas++;
for(i=1;i<=k;i++)
{
if(x%i!=0)
{
x=(x/i+1)*i;
}
if(i*(i+1)>x)
break;
}
if(i<k)
x=x/i*k;
printf("Case #%I64d: ",cas);
printf("%I64d\n",x);
}
}