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:
Khi nhập số là 0:
Khi nhập số là 1:
Khi nhập số là 6:
Khi nhập số là 7:
Nguồn: freetuts.net