Bài tập Tìm số nguyên to trong Python

Đề bài: Viết chương trình sử dụng ngôn ngữ lập trình Python nhập vào một số nguyên bất kỳ. Kiểm tra số nguyên vừa nhập có phải là số nguyên tố hay không và hiển thị kết quả ra màn hình.


Yêu cầu kiến thức:

  • Nắm được cách tổ chức chương trình, phân chia thành các hàm
  • Nắm được cách phân tích và thiết kế chương trình, cách sử dụng vòng lặp trong Python
  • Hiểu và vận dụng được cách kiểm tra số nguyên tố

Code tham khảo dưới viết trên Python ver 3.8:

# Ho ten: Hoang Van Tuan # Website: timoday.edu.vn def KiemTra_NguyenTo[n]: """ :param n: int :return: True neu n la so nguyen to. False neu n khong la so nguyen to """ kt = True if n < 2: kt = False elif n == 2: kt = True elif [n % 2] == 0: kt = False else: for i in range[3, n, 2]: if [n % i] == 0: kt = False return kt # Nhap du lieu n = int[input["Nhap vao so nguyen can kiem tra: "]] # Hien thi ket qua if KiemTra_NguyenTo[n] is True: print[n, "la so nguyen to!"] else: print[n, "khong la so nguyen to!"]


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây

Các thẻ: lap trinhlập trình python

Hãy viết chương trình kiểm tra số nguyên tố bằng Python. Bạn chỉ cần viết chương trình ở mức cơ bản nhất trong Python và không cần phải tối ưu, bởi đã có bài viết thuật toán kiểm tra số nguyên tố khá chi tiết.

Bài giải

-------------------- ######## --------------------

Để giải bài này thì bạn phải hiểu chút khái niệm SNT đã nhé: Số nguyên tố là số nguyên lớn hơn 1 và chỉ chia hết cho 1 và chính nó.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Dựa vào định nghĩa này ta rút ra được những tính chất sau: Số 2 là SNT chẵn duy nhất, bởi vì những số chẵn lớn hơn 2 luôn chia hết cho 1, 2 và chính nó.

Nếu một số thỏa 2 tính chất trên thì đó là số nguyên tố.

Dựa vào đây ta có thể phân tích toán như sau: Giả sử N là số cần kiểm tra.

Bài viết này được đăng tại [free tuts .net]

  1. Kiểm tra nếu N bằng 2 thì là SNT => Break
  2. Nếu N Break
  3. Nếu N là số chẵn thì không phải SNT => Break
  4. Lặp qua các số lẻ từ 2 -> [N - 1], nếu tồn tại số nào mà N chia hết thì không phải là SNT, nếu không thì đó là SNT.

Bài giải viết bằng ngôn ngữ Python như sau:

# HỌC PYTHON TẠI FREETUTS.NET # TÁC GIẢ: CƯỜNG NGUYỄN print["Chương trình đăng tại freetuts.net!"] print["Nhập vào số N lớn hơn 1: "] # Lấy dữ liệu n = int[input[]] flag = True # Kiểm tra SNT if [n < 2]: flag = False elif [n == 2]: flag = True elif [n % 2 == 0]: flag = False else: # Lặp qua các số lẻ nên bắt đầu từ 3 với bước nhảy là 2 for i in range[3, n, 2]: if [n % i == 0]: flag = False # In kết quả if flag == True: print[n, " là số nguyên tố"] else: print[n, " không phải là số nguyên tố"]

Đây là kết quả khi mình nhập số nguyên tố 7 vào:

Danh sách bài tập Python cơ bản

Cùng chuyên mục:

Hướng dẫn cách kiểm tra số nguyên tố trong python. Bạn sẽ học được cách viết hàm kiểm tra số nguyên tố trong python, cũng như cách liệt kê tất cả các số nguyên tố nhỏ hơn n bằng python sau bài học này.

Số nguyên tố trong python là gì

Chúng ta đều biết số nguyên tố là số tự nhiên lớn hơn 1 không phải là tích của hai số tự nhiên nhỏ hơn. Nói cách khác, số nguyên tố là những số chỉ có đúng hai ước số là 1 và chính nó.

Ví dụ, chúng ta xem xét các số 2, 3, 6 như sau:

Số 2 chỉ có đúng hai ước số là 1 và chính nó nên là số nguyên tốSố 3 chỉ có đúng hai ước số là 1 và chính nó nên là số nguyên tố

Số 6 có 4 ước số là 1, 2 , 3 và 6, do đó nó không phải là số nguyên tố.

Số nguyên tố là số lớn hơn 1chỉ có đúng hai ước số là 1 và chính nó. Bởi vậy nếu số đã cho có nhiều hơn dù chỉ 1 ước số khác số 1 và chính nó thì nó không phải là số nguyên tố.

Để làm được điều này, chúng ta chỉ cần kiểm tra trong phạm vi lớn hơn 1 và nhỏ hơn số đã cho có tồn tại ước số nào không, và nếu tồn tại dù chỉ một ước số thì có thể khẳng định số đã cho không phải là số nguyên tố.

Dựa vào điều này mà chúng ta có thể tạo hàm kiểm tra số nguyên tố trong python như sau:

def check_prime_number[n]:


flag = 1;
if [n > nhap so tu nhien: 1
1 khong phai so nguyen to

>> nhap so tu nhien: 2
2 la so nguyen to

>> nhap so tu nhien: 3
3 la so nguyen to

>> nhap so tu nhien: 4
4 khong phai so nguyen to

>> nhap so tu nhien: 6
6 khong phai so nguyen to

Liệt kê tất cả các số nguyên tố nhỏ hơn n

Sử dụng phương pháp ở trên, chúng ta có thể liệt kê tất cả các số nguyên tố nhỏ hơn n bằng python.

Và dưới đây là ví dụ về chương trình liệt kê tất cả các số nguyên tố nhỏ hơn n trong python:

def check_prime_number[n]:


flag = 1;
if [n > nhap mot so n: 20
2
3
5
7
11
13
17
19

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách kiểm tra số nguyên tố trong python, cũng như cách liệt kê tất cả các số nguyên tố nhỏ hơn n bằng python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>05. số trong python

Bài sau

Kiểm tra số nguyên trong python

Bài tiếp

Thay thế ký tự trong chuỗi python

Video liên quan

Chủ Đề