首页 > 代码库 > bzoj 3858: Number Transformation

bzoj 3858: Number Transformation

3858: Number Transformation

Time Limit: 1 Sec  Memory Limit: 64 MB
Submit: 82  Solved: 41
[Submit][Status]

Description

Teacher Mai has an integer x.
He does the following operations k times. In the i-th operation, x becomes the least integer no less than x, which is the multiple of i.
He wants to know what is the number x now.

Input

There are multiple test cases, terminated by a line "0 0".
For each test case, the only one line contains two integers x,k(1<=x<=10^10, 1<=k<=10^10).

Output

For each test case, output one line "Case #k: x", where k is the case number counting from 1.

Sample Input

2520 10
2520 20
0 0

Sample Output

Case #1: 2520
Case #2: 2600

HINT

Source

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long qword;int main(){        freopen("input.txt","r",stdin);        qword n,m;        int i;        qword t;        int cnt=0;        while (scanf("%lld%lld",&n,&m),cnt++,n+m)        {                t=0;                for (i=1;i<=m;i++)                {                        n=(n/i+(n%i!=0))*i;                        if (n/i==t)break;                        t=n/i;                }                printf("Case #%d: %lld\n",cnt,m*t);        }}

 

bzoj 3858: Number Transformation