HDU4952

来源:互联网 发布:mac音量键在哪里设置 编辑:程序博客网 时间:2024/06/07 05:06
/*题意:给你一个数x,给你K次操作,每一次x变为大于等于 x 且是 i 的倍数的数。
解题思路:可以知道  如果 变化以后  x 是i 和 i+1 的公倍数的倍数的话,那么x的值是不会变的,
x  < i * i 的时候,x值肯定会变,每一次增大i(这里后面就可以直接用公式)
所以我们只需要枚举到前面那种情况就可以了。因为当i*(i+1)>x时,以后的每一步x都要变,于是就直接不变用来变最后一步
x/i*k;*/
#include<iostream>#include<cstring>#define ll __int64using 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); }}

0 0