美文网首页
1306: 狐狸分肉--最大公约数

1306: 狐狸分肉--最大公约数

作者: Celia_QAQ | 来源:发表于2019-04-02 21:13 被阅读0次

Time Limit: 3 SecMemory Limit: 128 MB

Submit: 108Solved: 44

[Submit][Status][Web Board]

Description

从前有两只贪婪的小熊,有一天他们发现两块质量分别为A和B的肉。小熊是如此的贪婪所以他们都想要大的那块肉。就在这个时候一只狐狸经过并告

诉小熊我可以帮你们平分这两块肉。如果一块肉的质量是2的倍数,那么狐狸可以一次吃掉一半的肉。如果一块肉的质量是3的倍数,那么狐狸一次可

以吃掉三分之二。如果一块肉的质量是5的倍数,那么狐狸一次可以吃掉五分之四。小熊想了想后同意了狐狸的办法,但是他们有个条件就是狐狸必须用最少的次数使得两块肉的质量相等。你能告诉狐狸他最少可以吃几次才能使两块肉的质量相等吗?

Input

多组测试数据,每组测试数据包含两个正整数a,b(1<=a,b<=10^9)。

Output

对于每组测试数据,若狐狸不能使两块肉质量相等则输出-1,否则输出最少的次数。

Sample Input

15 20

14 8

6 6

Sample Output

3

-1

0


参考:ZCMU-1306-狐狸分肉 - ZCMUCZX的博客 - CSDN博客求a和b的最大公约数 gcd(a, b) = gcd(b, a%b) - qq_42157089的博客 - CSDN博客这道题它说要使最后的两块肉质量一样,而且它又说狐狸可以把它只剩下三分之一或者二分之一或者五分之一,其实最后剩余两块肉的质量如果是一样的,那肯定和公约数有关系了。我们就可以算它们的最大公约数,我们这么想嘛,如果是15和30最大公约数是15,分别除下15得到的1和2,那么最终肯定能得到,因为2除2就为1了,再举个例子18,8它们的最大公约数是2,分别除下2得到了9和4我们能不能把这9和4除2,除3,除5,能不能相等,最后得到的两个数如果相等那就说明是可以分的,n经过相除之后肯定不是2,3,5的倍数了,m经过相除也是,所以如果在中间能让它们两个数相等的话,其实最后得出来的也是一样的

gcd(a,b)!!!!!


#include<cstdio>

#include<algorithm>

#include<iostream>

#include<cstring>

#include<cmath>

using namespace std;

int gcd(int a,int b){

return b==0?a:gcd(b,a%b);

}

int main(){

int a,b,flag;

int sum;

while(~scanf("%d%d",&a,&b))

{

flag=0;

sum=gcd(a,b);

a/=sum;

b/=sum;

while(a%2==0){

a/=2;

flag++;

}

while(a%3==0){

a/=3;

flag++;

}

while(a%5==0){

a/=5;

flag++;

}

while(b%2==0){

b/=2;

flag++;

}

while(b%3==0){

b/=3;

flag++;

}

while(b%5==0){

b/=5;

flag++;

}

if(a==b)

printf("%d\n",flag);

else

printf("-1\n");

}

return 0;

}

相关文章

  • 1306: 狐狸分肉--最大公约数

    Time Limit:3 SecMemory Limit:128 MB Submit:108Solved:44 [...

  • 20160310绘本阅读

    狐狸分肉故事:两只小熊分肉,让坏狐狸乘虚而入,故事简单,但意义很深。

  • gcd,二分查找

    获取两个数的最大公约数 二分查找

  • 算法笔记(7)| 数学问题(1)

    1.最大公约数与最小公倍数 1.最大公约数 最大公约数是指正整数a和b中都能够除尽的最大的数。解决最大公约数是方法...

  • 最大公约数

    最大公约数 自然数d同时是a,b的约数,称d是a和b的公约数,d是a和b的公约数中最大的一个,d就是最大公约数,记...

  • 最大公约数

    一、辗转相除法1,循环除 2,迭代除 扩展:a,b最小公倍数=(ab最大公约数^2)a/最大公约数b/最大公约数=...

  • 1071.字符串的最大公因子

    解题思路 定理:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数。最大公约数(Greatest ...

  • 最大公约数和最小公倍数

    最大公约数 一般用gcd(a,b)来表示a和b的最大公约数,而求解最大公约数常用欧几里得算法(即辗转相除法) 如果...

  • 辗转相除法求最大公约数原理

    最大公约数 最小公倍数// A*B= 最大公约数 * 最小公倍数

  • 欧几里得算法

    (1)p=0,q=0 无最大公约数(2)p=0,q≠0 最大公约数为q(3)p≠0,q=0 最大公约数为p(4)p...

网友评论

      本文标题:1306: 狐狸分肉--最大公约数

      本文链接:https://www.haomeiwen.com/subject/svmnbqtx.html