[Buổi 7][Hàm số học][HW] Bài 2: Đếm ước dương


LÀM BÀI

Points: 100
Time limit: 1.0s
Memory limit: 256M

Author:
Problem types
Allowed languages
C++

Đếm ước dương

Bối cảnh

Một số nguyên dương có thể được biểu diễn bằng nhiều cặp ước. Hệ thống cần biết tổng số ước dương của n.

Nếu duyệt từ 1 đến n thì có thể quá chậm. Hãy tận dụng việc các ước xuất hiện theo cặp.

Yêu cầu

  1. Đọc số nguyên dương n.
  2. Đếm toàn bộ ước dương của n.
  3. Chú ý số chính phương: căn bậc hai chỉ được tính một lần.

Yêu cầu tổ chức code

Tạo hàm countDivisors(n).

Lưu ý: Online Judge chủ yếu kiểm tra tính đúng của output. Yêu cầu tổ chức code được dùng để rèn đúng kỹ năng của buổi học và sẽ được giảng viên quan sát khi chữa bài.

Input

Một số nguyên n.

Output

Một số nguyên là số lượng ước dương.

Ràng buộc

1 ≤ n ≤ 10^12.

Ví dụ 1

Input

12

Output

6

Giải thích

Các ước dương của 12 là 1, 2, 3, 4, 6, 12 nên có 6 ước.

Ví dụ 2

Input

1

Output

1

Giải thích

1 chỉ có một ước dương là chính nó, nên output bằng 1.

Thông tin học tập

  • Module: M02
  • Buổi: B07
  • Loại bài: HOMEWORK
  • Độ khó: Medium
  • Concepts: functions, divisor counting, square-root optimization
  • Giới hạn kiến thức: B01-B07
  • Time limit: 1 second(s)
  • Memory limit: 256 MB
  • Point: 100

Comments

There are no comments at the moment.

Zalo