[CodeForces 1141A] Game 23

Posted youpeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CodeForces 1141A] Game 23相关的知识,希望对你有一定的参考价值。

题目链接:http://codeforces.com/problemset/problem/1141/A

首先,nn一定要是mm的倍数。否则就无法转换,输出-1;

然后令k=.frac{m}{n} ,即k=.frac{m}{n} .

将k 分解质因数,若分解结果是k=.frac{m}{n} ,那答案就是k=.frac{m}{n} 。

如果无法分解成k=.frac{m}{n} ,那么输出-1。

AC代码:

#include <cstdio>

using namespace std;

int main() {
    int n,m;
    while(scanf("%d%d",&n,&m) != EOF) {
        if(m % n != 0) {
            puts("-1
");
        } else if (n == m) {
            puts("0
");
        } else {
            int k = m / n;
            int cnt = 0;
            while (k % 2 == 0) {
                cnt++;
                k /= 2;
            }
            while (k % 3 == 0) {
                cnt++;
                k /= 3;
            }
            if(k != 1) {
                puts("-1
");
            } else {
                printf("%d
",cnt);
            }
        }
    }
    return 0;
}

以上是关于[CodeForces 1141A] Game 23的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #416 (Div. 2) 811D Vladik and Favorite Game

Codeforces Round #643 (Div. 2) D. Game With Array(构造)

Codeforces Round #643 (Div. 2) D. Game With Array(构造)

CodeForces 687B Remainders Game

Educational Codeforces Round 73 (Rated for Div. 2) A. 2048 Game

Codeforces Round #316 (Div. 2) B. Simple Game