Fox Dividing Cheese CodeForces
阿新 • • 發佈:2018-12-14
題意:把兩塊餅可以變成原來1/2/ , 1/3 , 1/5,問你多少步可以變成質量相同的兩塊。 題解:看這個數由多少2、3、5組成,統計2、3、5個數的同時不斷用n去除以它們,除完以後得到的a , b如果不相同就不行,不過相同,那麼2、3、5個數的差就是步驟
#include<bits/stdc++.h> #include<cstring> using namespace std; int main() { int a,b,flag = 0; int arr[] ={2,3,5}; int ca[3] = {0},cb[3] = {0}; scanf("%d%d",&a,&b); if(a == b) flag =1; for(int i = 0 ; i < 3 ; i++) { while(a%arr[i] == 0) { ca[i]++; a/=arr[i]; } while(b%arr[i] == 0) { cb[i]++; b/=arr[i]; } } if(a!=b) printf("-1"); else { int num = 0; for(int i = 0 ; i < 3 ; i++) num+=abs(ca[i] - cb[i]); printf("%d\n",num); } return 0; }