[Wiki] Hàm Kiểm Tra số nguyên tố trong C/C++
Số nguyên tố:
- Số nguyên tố là số tự nhiên chỉ chia hết cho 1 và chính nó. Ngoài ra nó không chia hết cho bất cứ số nào khác. Số 0 và 1 không được coi là số nguyên tố. - Theo wiki
- Số 2 là số nguyên tố chẵn duy nhất.
- Cấu trúc ở dạng C:
int soNguyenTo(int soA)
{
if (soA < 2)
return 0;
for (int i = 2; i <= sqrt((float)soA); i ++)
{
if (soA%i==0)
{
return 0;
}
}
return 1;
}
Định nghĩa : Do người dùng tự tạo. Có thể có nhiều cách để tối ưu.
Ví dụ : Hãy kiểm tra xem số bạn nhập có phải là 1 số nguyên tố hay không ?Code minh hoạ C++
#include <iostream>
using namespace std;
bool soNguyenTo(int);
bool soNguyenTo(int soA) // hàm bool trả về true/false
{
if (soA < 2) // Nếu số A nhỏ hơn 2
{
return false;// trả về false
}
else if (soA>2)// Nếu số A lớn hơn 2
{
if (soA % 2 == 0) // Xét xem A có chia hết cho 2 không?
{
return false;// Nếu chia hết, return false.
}
for (int i = 3; i < sqrt((float)soA); i += 2) // xét từ 3 đến căn bậc 2 của số A
{
if (soA%i == 0) // nếu A chia hết cho một số nào đó trong đoạn này
{
return false;// trả về kết quả sai
}
}
}
return true;// sau tất cả các chỗ trên, nó mà không sai thì cuối cùng nó đúng :3
}
int main(int argc, char ** argv)
{
int n; // khai bao so kiem tra la so nguyen
cout << "Nhap so can kiem tra?!" << endl;
cin >> n; // nhap vao so nguyen tu ban phim
if (soNguyenTo(n) == true)
{
cout << "So " << n << " la so nguyen to!!!!";
}
else
{
cout << "So " << n << " khong phai nguyen to!!!!";
}
system("pause");
return 0;
}
- Hình minh họa: