Chương trình C ++ để kiểm tra xem một số có phải là số nguyên tố hay không

Ví dụ để kiểm tra một số nguyên (do người dùng nhập vào) có phải là số nguyên tố hay không bằng cách sử dụng vòng lặp for và câu lệnh if… else.

Để hiểu ví dụ này, bạn nên có kiến ​​thức về các chủ đề lập trình C ++ sau:

  • C ++ if, if… else và Nested if… else
  • C ++ cho Vòng lặp
  • C ++ ngắt và tiếp tục Câu lệnh

Một số nguyên dương chỉ chia hết cho 1 và chính nó được gọi là số nguyên tố.

Ví dụ: 13 là số nguyên tố vì nó chỉ chia hết cho 1 và 13 nhưng 15 không phải là số nguyên tố vì nó chia hết cho 1, 3, 5 và 15.

Lưu ý: 0 và 1 không phải là số nguyên tố.

Ví dụ: Kiểm tra số nguyên tố

 #include using namespace std; int main() ( int i, n; bool isPrime = true; cout <> n; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) ) if (isPrime) cout << n << " is a prime number"; else cout << n << " is not a prime number"; return 0; ) 

Đầu ra

 Nhập số nguyên dương: 29 29 là số nguyên tố.

Chương trình này lấy một số nguyên dương từ người dùng và lưu trữ nó trong biến n.

Lưu ý rằng biến boolean isPrime được khởi tạo trueở đầu chương trình.

01 không phải là số nguyên tố nên trước tiên chúng ta kiểm tra xem số đầu vào có phải là một trong những số đó hay không. Nếu số đầu vào là 0 hoặc 1 , thì giá trị của isPrime được đặt thành false.

Ngoài ra, giá trị ban đầu của isPrime không thay đổi và forvòng lặp được thực hiện, vòng lặp này sẽ kiểm tra xem số mà người dùng nhập vào có chia hết cho i hay không.

 for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) 

Các forvòng lặp chạy từ i == 2đến i <= n / 2và làm tăng giá trị của i bằng 1 với mỗi lần lặp.

Vòng lặp kết thúc tại i == n / 2vì chúng ta không thể tìm thấy bất kỳ thừa số nào cho n ngoài số n / 2 . Vì vậy, bất kỳ lần lặp nào vượt quá n / 2là thừa.

Nếu số do người dùng nhập hoàn toàn chia hết cho i, thì isPrime được đặt thành falsevà số sẽ không phải là số nguyên tố.

Nhưng nếu số đầu vào không chia hết hoàn toàn cho i trong toàn bộ vòng lặp, thì có nghĩa là số đầu vào chỉ chia hết cho 1 và chính số đó.

Vì vậy, số đã cho là số nguyên tố.

Trong trường hợp của n == 2, forvòng lặp không chạy và giá trị của isPrime vẫn còn true.

thú vị bài viết...