Ước có ước là 2

Xem PDF

Điểm: 100 Thời gian: 1.0s Bộ nhớ: 640M Input: bàn phím Output: màn hình

Cho số nguyên dương \(n\). Đếm số ước của \(n\) có ước số là \(2\).

Input

  • \(t (t\le 100)\) - số test
  • Mỗi test chứa \(1\) số nguyên dương \(n(n \le 10^9)\)

Output

  • Số ước số thỏa mãn đề bài

Example

Test 1

Input
2
9
8 
Output
0
3
Note
  • \(9\) có các ước như sau \(\{1, 3, 9\}\) và không hề có bất kỳ ước nào có ước số là \(2\) nên đáp án là \(0\).
  • \(8\) có các ước như sau \(\{1, 2, 4, 8\}\) và ba ước \(2,4,8\) đều có ước số \(2\) nên đáp án là \(3\).

Bình luận


  • 0
    nguyenhuyhoangladanitdo    12:45 p.m. 20 Tháng 4, 2024

    đây nè :
    def kt(n):
    s = 0
    for i in range(1, int(n**0.5) + 1): # Chỉ xét các ước đến căn bậc hai của n
    if n % i == 0:
    if i % 2 == 0: # Nếu ước i là số chẵn
    s += 1
    if i != n // i and (n // i) % 2 == 0: # Kiểm tra ước còn lại và là số chẵn
    s += 1
    return s

    t = int(input())
    for _ in range(t):
    x = int(input())
    print(kt(x))

  • 10 bình luận nữa