Đếm ước lẻ

Xem PDF



Thời gian:
Scratch 10.0s

Tác giả:
Dạng bài
Điểm: 100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho số nguyên dương \(n\), hẫy đếm số lượng ước số lẻ của \(n\).

Ví dụ: \(n=30\) thì các ước của \(n\)\(1;2;3;5;6;10;15;30\) thì có các ước số lẻ là \(1;3;5;15\), vậy đáp số là \(4\).

Input

  • Một số nguyên dương \(n\ (n \le 10^{14})\)

Output

  • Một số nguyên duy nhất là kết quả của bài toán

Example

Test 1

Input
30
Output
4

Bình luận


  • 0
    Avocadorable    8:03 p.m. 21 Tháng 5, 2024
    def count_odd_divisors(n):
        count = 0
        sqrt_n = int(n**0.5)
        for i in range(1, sqrt_n + 1):
            if n % i == 0:
                if i % 2 != 0:
                    count += 1
                if (n // i) % 2 != 0 and i != (n // i):
                    count += 1
        return count
    
    print(count_odd_divisors(int(input())))
    
  • 5 bình luận nữa