Mô tả bài toán
Tạo một Series chứa 5 số nguyên tố (prime) ngẫu nhiên trong khoảng từ 100 đến 150.
Giải pháp
- Tìm tất cả số nguyên tố trong khoảng 100-150.
- Dùng
random.sample()chọn 5 số ngẫu nhiên. - Tạo Series từ list kết quả.
Ví dụ code hoàn chỉnh
import pandas as pd
import random as rand
# Bước 1: Tìm các số nguyên tố 100-150
primes = []
for i in range(100, 150):
is_prime = True
if i < 2:
is_prime = False
else:
for j in range(2, int(i**0.5) + 1): # Tối ưu: chỉ kiểm tra đến căn bậc 2
if i % j == 0:
is_prime = False
break
if is_prime:
primes.append(i)
print(f"Các số nguyên tố 100-150: {primes}")
print(f"Tổng cộng: {len(primes)} số")
# Bước 2: Chọn 5 số ngẫu nhiên
selected = rand.sample(primes, 5)
rand_series = pd.Series(selected)
print("\nSeries 5 số nguyên tố ngẫu nhiên:")
print(rand_series)
Đầu ra mẫu
Các số nguyên tố 100-150: [101, 103, 107, 109, 113, 127, 131, 137, 139, 149] Tổng cộng: 10 số Series 5 số nguyên tố ngẫu nhiên: 0 109 1 149 2 107 3 101 4 131 dtype: int64
Cải tiến: Sử dụng sympy (thư viện toán học)
import pandas as pd import random from sympy import primerange primes = list(primerange(100, 150)) rand_series = pd.Series(random.sample(primes, 5)) print(rand_series)
Lưu ý: Cách duyệt đến sqrt(i) nhanh hơn nhiều so với duyệt đến i như code gốc.