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
# 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