题解 CF371B 【Fox Dividing Cheese】

ShineEternal

2019-09-21 20:31:06

Solution

[更佳阅读](https://blog.csdn.net/kkkksc03/article/details/101117693) ## Description: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190921202816488.png) ## Solution: $idea1:$ 直接bfs搜索,因为一个数的约数个数还真不多。 但是有些麻烦? $idea2:$ ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190921202953991.png) 然后在分别试除$2,3,5$这几个数的时候也有点技巧,可以看一下 ```cpp #include<cstdio> using namespace std; int gcd(int x,int y) { if(y==0)return x; return gcd(y,x%y); } int main() { int a,b,c; scanf("%d%d",&a,&b); c=gcd(a,b); a=a/c; int cnt=0; b=b/c; for(int i=2;i<=5;i+=(i-1)) { while(a%i==0) { cnt++; a=a/i; } while(b%i==0) { cnt++; b=b/i; } } if(a!=b)printf("-1\n"); else printf("%d\n",cnt); return 0; } ```