1. 程式人生 > >Fox Dividing Cheese CodeForces

Fox Dividing Cheese CodeForces

在這裡插入圖片描述 在這裡插入圖片描述

題意:把兩塊餅可以變成原來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;
}