Điểm:
100 (p)
Thời gian:
1.0s
Bộ nhớ:
1G
Input:
bàn phím
Output:
màn hình
Cho số nguyên dương \(N\).
Yêu cầu: Hãy phân tích \(N\) thành thừa số nguyên tố và đếm ước số của \(N\).
Input
- Gồm một dòng duy nhất chứa số nguyên dương \(N\).
Output
- Dòng thứ nhất ghi phân tích thừa số của \(N\) dưới dạng \(a * b * c * d\), với \(a, b, c, d\) là các thừa số nguyên tố của \(N\).
- Dòng thứ hai ghi số lượng ước số của \(N\).
Constraints
- \(N\leq 2.10^9\)
Example
Test 1
Input
10
Output
2*5
4
Test 2
Input
100
Output
2*2*5*5
9
Bình luận
def prime_factors(n):
"""Trả về một danh sách các thừa số nguyên tố của n và số mũ của chúng"""
i = 2
factors = []
while i * i <= n:
count = 0
while (n % i) == 0:
n //= i
count += 1
if count > 0:
factors.append((i, count))
i += 1
if n > 1:
factors.append((n, 1))
return factors
def count_divisors(factors):
"""Tính số lượng ước số dựa trên thừa số nguyên tố"""
count = 1
for _, exp in factors:
count *= (exp + 1)
return count
def main():
import sys
input = sys.stdin.read
N = int(input().strip())
sai rồi bạn ê
# Phân tích thừa số nguyên tố
factors = prime_factors(N)
if name == "main":
main()
8 bình luận nữa