C - 高橋くんと魔法の箱 / AtCoderBeginnerContest#019

abc019.contest.atcoder.jp

#include <iostream>
#include <set>
using namespace std;

void Solve(int n)   {
    set<int> se;
    int a;

    se.clear();
    for (int i=0; i<n; ++i) {
        cin >> a;
        while (a%2 == 0)
            a/=2;
        se.insert(a);
    }
    cout << se.size() << endl;
}

int main(void)  {
    int n;

    cin >> n;
    Solve(n);
    return 0;
}

2で割り切れなくなるまで割り、重複していない値の個数を表示。
〜了〜