จำนวนเฉพาะคือจำนวนเต็มที่มากกว่า 1 และตัวประกอบเฉพาะของจำนวนเฉพาะควรเป็นหนึ่งและตัวของมันเอง
จำนวนเฉพาะตัวแรกคือ −
2, 3, 5, 7, 11, 13 ,17
โปรแกรมตรวจสอบจำนวนเฉพาะว่าเป็นจำนวนเฉพาะหรือไม่ใช้ฟังก์ชันมีดังต่อไปนี้
ตัวอย่าง
#include <iostream> using namespace std; void isPrime(int n) { int i, flag = 0; for(i=2; i<=n/2; ++i) { if(n%i==0) { flag=1; break; } } if (flag==0) cout<<n<<" is a prime number"<<endl; else cout<<n<<" is not a prime number"<<endl; } int main() { isPrime(17); isPrime(20); return 0; }
ผลลัพธ์
17 is a prime number 20 is not a prime number
ฟังก์ชัน isPrime() ถูกใช้เพื่อค้นหาว่าตัวเลขนั้นเป็นจำนวนเฉพาะหรือไม่ มีลูปที่วิ่งจาก 2 ถึงครึ่งหนึ่งของ n โดยที่ n คือตัวเลขที่จะกำหนด แต่ละค่าของการวนซ้ำหาร n หากเศษที่เหลือของการหารนี้เป็น 0 แสดงว่า n หารด้วยตัวเลขลงตัว ไม่ใช่ตัวเดียวหรือตัวมันเอง ดังนั้นจึงไม่ใช่จำนวนเฉพาะและตั้งค่าสถานะเป็น 1 จากนั้นคำสั่ง break จะใช้เพื่อออกจากลูปดังที่แสดงด้านล่าง −
for(i=2; i<=n/2; ++i) { if(n%i==0) { flag=1; break; } }
หากค่าของแฟล็กยังคงเป็นศูนย์ แสดงว่าตัวเลขนั้นเป็นจำนวนเฉพาะและแสดงขึ้น หากค่าของแฟล็กถูกเปลี่ยนเป็นหนึ่ง ตัวเลขนั้นไม่ใช่จำนวนเฉพาะและจะแสดงขึ้น
if (flag==0) cout<<n<<" is a prime number"; else cout<<n<<" is not a prime number";
ฟังก์ชัน isPrime() ถูกเรียกจากฟังก์ชัน main() สำหรับค่า 17 และ 20 ซึ่งแสดงดังต่อไปนี้
isPrime(17); isPrime(20);