0
点赞
收藏
分享

微信扫一扫

A. Divide it!(思维)Codeforces Round #565 (Div. 3)

代码小姐 2022-06-24 阅读 69

原题链接: ​​https://codeforces.com/contest/1176/problem/A​​

A. Divide it!(思维)Codeforces Round #565 (Div. 3)_整除
测试样例
input
7
1
10
25
30
14
27
1000000000000000000
output
0
4
6
6
-1
6
72

题意: 给你一个整数A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_02,你可以进行一下三个操作步骤:

  • 如果A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_03能被A. Divide it!(思维)Codeforces Round #565 (Div. 3)_整除_04整除,就将A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_03变为A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_06
  • 如果A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_03能被A. Divide it!(思维)Codeforces Round #565 (Div. 3)_整除_08整除,就将A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_03变为A. Divide it!(思维)Codeforces Round #565 (Div. 3)_#define_10
  • 如果A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_03能被A. Divide it!(思维)Codeforces Round #565 (Div. 3)_#define_12整除,就将A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_03变为A. Divide it!(思维)Codeforces Round #565 (Div. 3)_整除_14

问你至少能经过多少个操作步骤使得A. Divide it!(思维)Codeforces Round #565 (Div. 3)_ios_02变为1,若行,则输出答案,否则输出-1。

解题思路: 这道题我们可以模拟这三种操作,直接统计操作次数即可,注意退出条件(即还未到达A. Divide it!(思维)Codeforces Round #565 (Div. 3)_#define_16时就不能进行任何操作了)。具体看代码。

AC代码

/*

*
*/
#include<bits/stdc++.h> //POJ不支持

#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增
#define per(i,a,n) for (int i=a;i>=n;i--)//i为循环变量, a为初始值,n为界限值,递减。
#define pb push_back
#define IOS ios::sync_with_stdio(false);cin.tie(0); cout.tie(0)
#define fi first
#define se second
#define mp make_pair

using namespace std;

const int inf = 0x3f3f3f3f;//无穷大
const int maxn = 1e5;//最大值。
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<int, int> pii;
//*******************************分割线,以上为自定义代码模板***************************************//

ll t,n;
int main(){
//freopen("in.txt", "r", stdin);//提交的时候要注释掉
IOS;
while(cin>>t){
while(t--){
cin>>n;
int cnt=0;
bool flag=false;
while(n>1){
if(n%2==0){
n/=2;
cnt++;
}
else if(n%3==0){
n=n/3*2;
cnt++;
}
else if(n%5==0){
n=n/5*4;
cnt++;
}
else{
flag=true;
break;
}
}
if(flag)
cout<<-1<<endl;
else{
cout<<cnt<<endl;
}
}
}
return 0;
}


举报

相关推荐

0 条评论