เลขเฉพาะ (Prime) คือ เลขที่หารลงตัวได้ด้วยตัวมันเองและ 1 เท่านั้น ตัวประกอบ (Factor) คือ ตัวเลขที่หารลงตัว
เลขเฉพาะ 10 ตัวแรก: 2, 3, 5, 7, 11, 13, 17, 23, 29, 31
เลขที่ไม่ใช่เฉพาะ เรียกว่า Composite (คอมโพสิต) หารได้มากกว่า 2 ตัว
เลข 1 ไม่ใช่เฉพาะ และไม่ใช่ Composite เพราะหารได้แค่ตัวมันเอง
วิธีตรวจสอบ: 1) ต้องเป็นจำนวนเต็ม > 1 2) มีตัวประกอบแค่ 1 และตัวมันเอง
ในโปรแกรม เราจะหารด้วยทุกตัวน้อยกว่ามัน หากมีตัวใดหารลงตัว -> ไม่ใช่เฉพาะ
ตัวอย่าง 42: 42/2=21 หารลงตัว -> ไม่ใช่เฉพาะ
ตัวอย่าง 7: หาร 2,3,4,5,6 ไม่ลงตัวทั้งหมด -> เป็นเฉพาะ
แต่ถ้าเลขใหญ่ (1000+) Loop ยาวมาก วิธีปรับปรุง: วน Loop แค่ครึ่ง (ถึง n/2) เพราะตัวประกอบมากกว่า n/2 ไม่มี (ยกเว้นตัวมันเอง)
ตัวอย่าง
#include <stdio.h>
int main() {
int num = 33, flag = 0;
for (int i = 2; i < num/2; i++) {
if (num % i == 0) {
printf("%d is not a prime number", num);
flag = 1;
break;
}
}
if (flag == 0) {
printf("%d is a prime number", num);
}
}ผลลัพธ์
33 is a prime number