Đ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
đâ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))
sai kìa,lỗi biên dịch đó!!!
vấn đề kĩ năng