Đ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()
Code cho ai ko bt làm:
def prime_factorization(n):
factors = []
count = 0
def count_divisors(factors):
from collections import Counter
factor_count = Counter(factors)
num_divisors = 1
for count in factor_count.values():
num_divisors *= (count + 1)
return num_divisors
def main():
import sys
input = sys.stdin.read
n = int(input().strip())
if name == "main":
main()
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
mình nghĩ bài này testcases đang yếu '-'
i
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Spoiler Alert
Hint 1
Hint 2
Hint 3
Reference AC code | \(O(\sqrt n)\) time | \(O(\frac{\log n}{\log(\log n)})\) auxiliary space | Factorization