* Phương pháp đơn giản nhất để kiểm tra một số n có là số nguyên tố không là kiểm tra xem nó có chia hết cho một số m nằm trong khoảng từ 2 đến n-1 hay không. Nếu n chia hết cho m thì n không là số nguyên tố, ngược lại n là số nguyên tố.
* Ngoài ra do tính chất của Hợp số thì nó chắc chắn có ước số không vượt quá , vì vậy ta chỉ cần kiểm tra từ 2 đến .
* Chúng ta cũng có thể bỏ qua việc kiểm tra các trường hợp là bội số của 2 và 3 bằng cách kiểm tra các số lẻ. Các số lẻ này có dạng 6k-1 và 6k+1 và k = 0, 1, 2, 3...
Chương trình cài đặt.
#include<iostream> #include<conio.h> using namespace std; bool isPrime(int n){ if(n == 2 || n== 3) return true; if(n == 1 || n%2 == 0 || n%3 == 0) return false; int k = -1; do{ k+=6; if(n%k == 0 || n%(k+2)==0) break; }while(k*k < n);// k < sqrt(n); return k*k>n;// return k > sqrt(n). } int main(){ int n; cout<<"Input number:"; cin>>n; if(isPrime(n)){ cout<<n<<" is prime"; }else{ cout<<n<<" is not prime"; } _getch(); return 0; }
0 Comment to "[Thuật Toán] Kiếm tra tính chất nguyên tố của một số."
Post a Comment