Mọi người cho em hỏi chương trình dùng hàm in ra các sô nguyên tố từ 2 đến 2000. Nhưng khi chạy thì số nguyên tố đầu tiên trở đi là 11. Cho từ 2 đến 50 hay đến số nhỏ hơn 2000 thì cho ra kết quả đúng?
#include <iostream>
using namespace std;
//Ham kiem tra mot so co la so nguyen to khonh
//Ham nhan vao mot so nguyen > 0
//Ham tra ve true neu so la so nguyen to, false neu khong la so nguyen to
bool laNguyento (int n)
{
bool ketqua = true;
if ( n < 2 )
ketqua = false;
if ( n >= 2 )
{
for ( int i = 2; i <= sqrt(n*1.0); i++ )
{
if ( n % i == 0 )
ketqua = false;
}
}
return ketqua;
}
int main()
{
cout << "Cac so nguyen to tu 2 den 2000 la: " << endl;
for ( unsigned int i = 2; i <= 2000; i++ )
{
if ( laNguyento(i) )
cout << " " << i << endl;
}
}