Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
UMR 现在手里有 n 张康纳的表情,最上面一张是玛吉呀巴库乃。现在 UMR 如果每次把最上面的 m 张牌移到最下面而不改变他们的顺序及朝向,那么至少经过多少次移动玛吉呀巴库乃才会又出现在最上面呢?
Input
多组输入。
对于每组数据,输入以空格分隔的两个整数 n 和 m (1 <= n, m <= 10^9)。
Output
对于每组数据,输出一个整数,表示至少移动的次数。
Example Input
54 12
Example Output
9
Hint
要想某张卡片再次出现,放到下面的个数就一定是原来的张数的倍数,还要是每次放到下面的张数的倍数,所以要求最大公约数,然后用总的张数/最大公约数。
#include <bits/stdc++.h> using namespace std; int main() { int N, M; while(~scanf("%d %d", &N, &M)) printf("%d\n", N/__gcd(N, M)); return 0; }