Mình cần gấp! Viết giúp chương trình Python theo những ý sau! *Yêu cầu: Đếm số lượng ước số của số nguyên n, với n là kiểu số nguyên 32bit. *Dữ liệu: Một dòng duy nhất ghi số nguyên n. *Kết quả: In ra số ước số của số nguyên n *VD: Input: 10 Output: 4

2 câu trả lời

n=int(input())
d=0
for i in range(1,n//2+1):
    if (n%i==0):
        d+=1
print(d+1)

# Có thể dùng 1 trong 2 cách và bỏ cách còn lại đi :>

import math

n = int(input())

# Cách 1: sử dụng for để đếm
res = 0
for i in range(1, int(math.sqrt(n)) + 1):
    if n % i == 0:
        res += 2
if int(math.sqrt(n)) * int(math.sqrt(n)) == n:
    res -= 1
print(res)


# Cách 2: Phân tích thành số nguyên tố
# n = a^x * b^y * ...
# => Số ước số n = (x + 1)(y + 1)(..)
res = 1
i = 2
while i * i <= n:
    cnt = 0
    while n % i == 0:
        n /= i
        cnt += 1
    res *= cnt + 1
    i += 1
if n != 1:
    res *= 2
print(res)

Câu hỏi trong lớp Xem thêm