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

Không có ý kiến tại thời điểm này.