Câu hỏi:

12/07/2024 531 Lưu

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 n. 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. 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ố.

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

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)

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 (ảnh 1)

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])))

Trong các phần mềm bảng tính điện tử, dữ liệu ngày tháng được coi là số ngày tính  (ảnh 1)

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)