C++ - Kiểm tra một số được nhập từ bàn phím có phải là số nguyên tố không
Viết một chương trình kiểm tra một số được nhập từ bàn phím có phải là số nguyên tố không
Bài giải
-------------------- ######## --------------------
Theo trang Wikipedia: Một số được gọi là số nguyên tố khi nó là số tự nhiên khác 0 mà chỉ có 2 ước đó là 1 và chính nó. Số 1 chỉ có 1 ước, nên số 1 không phải là số nguyên tố. Vậy số nguyên tố nhỏ nhất là số 2.
Cách giải bài toán trên như sau:
- Nhập số từ bàn phím, ta gọi biến đó là so
- Khai báo và khởi tạo biến kt = 1, biến kt là cờ, đánh dấu so có phải là số nguyên tố hay không, nếu kt = 0 thì so không phải là số nguyên tố, nếu kt = 1 thì so là số nguyên tố
- Sử dụng vòng lặp
while
lặp từ 2 đến so/2, cấu trúc vòng lặp while có dạngwhile (i <= so/2)
- Trong mỗi vòng lặp thứ i kiểm tra so có chia hết cho i không, nếu
If(so % i == 0)
thì gán biến kt bằng 0 - Ra khỏi vòng lặp kiểm tra nếu biến kt bằng 1 thì so là số nguyên tố, ngược lại so không phải là số nguyên tố
Chúng sẽ giải bài toán trên bằng cách sử dụng vòng lặp while
trong C++ như sau:
#include <cmath> #include <iostream> using namespace std; int main() { int i = 2, so, kt = 1; cout << "Nhap so: "; cin >> so; if (so != 0 && so != 1) { while(i <= so/2) { if(so%i == 0) { kt = 0; break; } i++; } } else { kt = 0; } if(kt == 1) { cout << so << " la so nguyen to" << endl; } else { cout << so << " khong phai la so nguyen to" << endl; } return 0; }
Và kết quả sau khi thực thi chương trình trên như sau:
Bài viết này được đăng tại [free tuts .net]
Khi nhập số là 0:
Khi nhập số là 1:
Khi nhập số là 6:
Khi nhập số là 7:
Bài tập vòng lặp while C++
- C++ - Tính tổng các chữ số của một số nguyên được nhập từ bàn phím
- C++ - Nhập một số in ra màn hình bằng chữ
- C++ -Tìm bội chung nhỏ nhất của hai số nguyên được nhập từ bàn phím
- C++ - Kiểm tra một số được nhập từ bàn phím có phải là số nguyên tố không
- C++ - In tất cả các số nguyên tố từ 1 đến số n được nhập từ bàn phím