题目链接:http://codeforces.com/problemset/problem/1176/A
思路:贪心,对第二个操作进行俩次等于将n变成n/3,第三个操作同理,我们将n不断除以2,再除以3,最后除以5,判断最后是否等于1即可。
AC代码:
1 #include<iostream> 2 using namespace std; 3 long long n,ans; 4 int main(){ 5 int T; 6 cin >> T; 7 while(T--){ 8 cin >> n; 9 ans = 0; 10 while(n % 2 == 0)n /= 2,ans++; 11 while(n % 3 == 0)n /= 3,ans += 2; 12 while(n % 5 == 0)n /= 5,ans += 3; 13 if(n == 1) cout << ans << endl; 14 else cout << -1 << endl; 15 } 16 return 0; 17 }