Nếu n là hợp số thì dễ thấy n phải có ước số nguyên tố nhỏ hơn hoặc bằng . Viết chương tình tối ưu hoá hơn nhiệm vụ 1, bài 31 theo cách sau: để tìm ước số nguyên tố nhỏ nhất thì chỉ cần tìm trong các số 2, 3, ..., . Nếu trong dãy trên không tìm thấy ước của n thì kết luận ngay n là số nguyên tố.
Câu hỏi trong đề: Bài tập Ôn tập lập trình Python có đáp án !!
Quảng cáo
Trả lời:
def phanTichSoNguyen(n):
i = 2
A = []
while (n > 1):
if (n % i == 0):
n = n // i;
A.append(i)
else:
i = i + 1
return A
n = int(input("Nhập số nguyên dương n = "))
A = phanTichSoNguyen(n)
size = len(A)
if size == 1:
print("n là số nguyên tố")
else:
print("n là hợp số")
sb = "";
for i in range(0, size - 1):
sb = sb + str(A[i]) + " x "
sb = sb + str(A[size-1])
print("Kết quả:", n, "=", sb)

Hot: Học hè online Toán, Văn, Anh...lớp 1-12 tại Vietjack với hơn 1 triệu bài tập có đáp án. Học ngay
- Trọng tâm Lí, Hóa, Sinh 10 cho cả 3 bộ KNTT, CTST và CD VietJack - Sách 2025 ( 40.000₫ )
- Sách - Sổ tay kiến thức trọng tâm Vật lí 10 VietJack - Sách 2025 theo chương trình mới cho 2k9 ( 31.000₫ )
- Sách lớp 10 - Combo Trọng tâm Toán, Văn, Anh và Lí, Hóa, Sinh cho cả 3 bộ KNTT, CD, CTST VietJack ( 75.000₫ )
- Sách lớp 11 - Trọng tâm Toán, Lý, Hóa, Sử, Địa lớp 11 3 bộ sách KNTT, CTST, CD VietJack ( 52.000₫ )
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Lời giải
Để giải quyết bài toán một cách triệt để và bằng phép tính thủ công sẽ khá khó khăn, trong Python cung cấp một số thư viện cũng như hàm có sẵn, giúp cho quá trình giải bài toán thuận tiện và dễ dàng hơn.
Tham khảo đoạn code sau:
from datetime import date
from datetime import timedelta
dateStandard = date(1990, 1, 1)
def calNumberDay(date1):
return (date1 - dateStandard).days
def NumberToDate(number):
return dateStandard + timedelta(days=number)
d=int(input("Nhap số ngày"))
a=input("Nhập thời gian").split(" ")
a[0]=int(a[0])
a[1]=int(a[1])
a[2]=int(a[2])
print(NumberToDate(number=32))
print(calNumberDay(date(a[2],a[1],a[0])))

Lời giải
Chương trình:
def Sosanhxau(name1, name2):
name1 = name1.split()
name2 = name2.split()
i = 1
while i <= len(name1) and i <= len(name2):
if name1[len(name1)-i] > name2[len(name2)-i]:
return True
elif(name1[len(name1)-i]<name2[len(name2)-i]):
return False
else:
i += 1
return False
def Sapxep(A,n):
for i in range(n):
minimum = i
for j in range(i + 1,n):
if Sosanhxau(A[j], A[minimum]) == False :
minimum = j
A[minimum], A[i] = A[i], A[minimum]
return A
n=int(input("Nhập số lượng học sinh của lớp"))
A=[]
for i in range(0,n):
s=input()
A.append(s)
A=Sapxep(A,n)
print("Danh sách lớp theo tên đã sắp xếp là:")
print(A)
Lời giải
Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.