100 atcoder#ABC100C. [ABC100C] *3 or /2
[ABC100C] *3 or /2
题目描述
AtCoder Beginner Contest 100 の開催にともなって, AtCoder 社では長さ の数列 {} が飾られることになった.
社員のすぬけ君は, この数列で遊んでみようと思った.
具体的には, 以下の操作をできるだけ多くの回数繰り返そうと思った.
を満たす全ての に対して, それぞれ「 の値を で割る」「 の値を 倍する」のどちらかを行う. ただし, 全ての に対して 倍することはできず, 操作後の の値は整数でなければならない.
最大で何回の操作が可能か, 求めなさい.
输入格式
入力は以下の形式で標準入力から与えられる.
输出格式
すぬけ君が行える最大の操作回数を出力しなさい.
题目大意
给定一个长度为 的数列 ,你可以对它进行以下操作:
对于所有使得 的 ,将 乘以 ,或者除以 。
注意:
-
如果 是奇数,那么 就不能除以 。
-
两种操作都必须使用。
最后输出能操作的次数的最大值。
3
5 2 4
3
4
631 577 243 199
0
10
2184 2126 1721 1800 1024 2528 3360 1945 1280 1776
39
提示
制約
- は 以上 以下の整数
- は 以上 以下の整数
Sample Explanation 1
最初, 数列は であるが, 以下のように操作すれば 回の操作を行うことができる. - 最初に, を 倍し, を 倍し, を で割る. すると数列は となる. - 次に, を 倍し, を で割り, を 倍する. すると数列は となる. - 最後に, を 倍し, を 倍し, を で割る. すると数列は となる.
Sample Explanation 2
全ての要素が奇数なので, 操作はできない. よって答えは である.