Lũy thừa của 2
Xem dưới dạng PDF
Gửi bài giải
Điểm:
5
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
64M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
An đang học về biểu diễn nhị phân. Cô giáo cho An một dãy số và hỏi: "Trong dãy có bao nhiêu số là lũy thừa của 2?"
Một số \(x\) là lũy thừa của 2 nếu nó có dạng \(x = 2^k\) với \(k \ge 0\). Trong nhị phân, các số này chỉ có đúng 1 bit 1.
Gợi ý: Dùng công thức \(x > 0\) và \((x \& (x-1)) == 0\).
Input:
- Dòng 1: Số nguyên \(N\) (\(1 \le N \le 10^5\))
- Dòng 2: \(N\) số nguyên \(a_i\) (\(1 \le a_i \le 10^9\))
Output: Một số nguyên là số lượng số lũy thừa của 2.
Ví dụ: Input:
6
1 3 4 7 8 10
Output:
3
Nhận xét