Đề bài
a. Nhập, thi hành và cho biết kết quả của chương trình sau:
#include <iostream> using namespace std; int main() { int i=1,n,demuoc=0; cout<<"nhap n = ";cin>>n; for(i=1;i<=n;i++) if(n%i==0) demuoc++; if (demuoc==2) cout<<"la so nguyen to"; else cout<<"khong la so nguyen to"; }
b. Viết lại chương trình sau sử dụng vòng lặp do … while và in kết quả lên màn hình.
Ý tưởng thuật toán
Định nghĩa số nguyên tố
“Số nguyên tố là số tự nhiên lớn hơn 1, chỉ có hai ước là 1 và chính nó”. (chỉ chia hết cho 1 và chính nó).
Tức là: một số tự nhiên lớn hơn 1, nếu như ngoài bản thân nó và 1 ra, nó không chia hết cho số nào khác nữa thì nó là số nguyên tố. Ví dụ như 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, …
Ví dụ:
- 1: => Không là số nguyên tố.
- 2: chỉ chia hết cho 1 và chính nó là 2 => là số nguyên tố.
- 3: chia hết cho 1 và 3 => là số nguyên tố.
- 4: chia hết cho 1, 2 và 4 => Không là số nguyên tố.
- …
Cấu trúc vòng lặp do while
Cấu trúc vòng lặp do-while là: do { <khối lệnh> } while (<điều kiện>)
Vậy nên khi bạn chuyển từ vòng lặp for sang vòng lặp do while thì chỉ cần thay thế:
Khối lệnh trong do là những gì thực hiện trong vòng lặp for:
if(n%i==0) demuoc++; i++;
Và đừng quên theo sau nó vẫn còn biến i++ nữa nhé, mỗi lần lặp nó sẽ tăng lên 1 đơn vị.
Điều kiện trong while là: điều kiện trong for: i<=n
Code số nguyên tố do while trong C++
#include <iostream> using namespace std; int main() { int i=1,n,demuoc=0; cout<<"nhap n = ";cin>>n; do { if(n%i==0) demuoc++; i++; } while (i<=n); if (demuoc==2) cout<<"la so nguyen to"; else cout<<"khong la so nguyen to"; }
Kết quả khi chạy chương trình:
nhap n = 11
la so nguyen to
Dãy số nguyên tố <100: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97.