30/09/2018, 18:14
Đoạn code tìm số nguyên tố có sử dụng if(lasoNT) và sqrt(n) có nghĩa là gì?
Đoạn code trên tìm số nguyên tố mình có một đôi chỗ không hiểu bạn nào có thế giải thích dùm mình chỗ comment với, Cảm ơn
#include <iostream>
#include <cmath>
using namespace std;
main () {
int n;
cout << "Nhap so nguyen n: "<<endl;
cin >> n;
int lasoNT = 1; // chỗ này
for (int i=2; i<=sqrt(n) && lasoNT; i++) // chỗ này
lasoNT=(n%i); // chỗ này
if (lasoNT)
cout <<""<<n<<" la so nguyen to"; // chỗ này
else
cout <<"Khong phai la so nguyen to";
}
Bài liên quan
Kiến thức cần biết để hiểu bài này
1.Số khác 0, tương đương với
true
, số bằng 0, tương đương vớifalse
2.Để kiểm tra số nguyên tố, ta không cần phải chia
n
cho k với k từ2..(n-1)
mà ta chỉ cần kiểm trak
từ 2…√nTương đương với
i
bé hơn căn bậc 2 củan
, và là số nguyên sốlasoNT
bằng kết quản
chia lấy dưi
,Nếu chia hết tức
n%i
trả ra 0 thìlasoNT
bằng 0, tương đương vớilasoNT = false
Tương đương với
Vì code này là C++, ta có thể sửa lại như sau cho dễ hiểu hơn