ภาษา C - ตรวจสอบว่าจำนวนเต็มเป็นจำนวนเฉพาะหรือไม่

โปรแกรมในภาษา C สามารถใช้ ตรวจสอบว่าจำนวนเต็มเป็นจำนวนเฉพาะ หรือไม่ ความรู้บางอย่างเกี่ยวกับแนวคิดการเขียนโปรแกรมและภาษาเช่น C จำเป็นต้องเขียนโค้ดโปรแกรมใน C แนวคิดพื้นฐานเช่นการวนซ้ำรวมถึงการวนซ้ำในขณะที่วนซ้ำถ้ามีการวนซ้ำฟังก์ชันอื่น ๆ เป็นสิ่งจำเป็นในการเขียนโปรแกรม โปรแกรมที่ จะตรวจสอบว่าจำนวนเต็มเป็นจำนวนเฉพาะใน C สามารถเขียนได้โดยใช้ ซ้อนสำหรับลูป หรือไม่ ซ้อนกันสำหรับลูปมีหนึ่งสำหรับห่วงภายในอื่น ความรู้บางอย่างเกี่ยวกับฟังก์ชั่น C เช่น scanf และ printf ก็จะช่วยได้เช่นกันเมื่อเขียนโปรแกรมใน C

[ภาษา C] ตรวจสอบว่าจำนวนเต็มเป็นจำนวนเฉพาะหรือไม่

  • นิยามของจำนวนเฉพาะ
    • อัลกอริทึม 1: ตัวหารระหว่าง 2 ถึง N-1 จะถูกทดสอบ
    • อัลกอริธึมที่ 2: แม้ตัวหารจะไม่ถูกทดสอบการวิจัยก็ถูก จำกัด โดยตัวหารที่แปลก
    • อัลกอริทึม 3: ตัวหารแบบคี่ทั้งหมดจนถึงรากที่สองของ N จะถูกทดสอบ
    • อัลกอริทึม 4: หยุดโปรแกรมเมื่อพบตัวแบ่ง

นิยามของจำนวนเฉพาะ

จำนวนเฉพาะคือจำนวนเต็มซึ่งหารด้วย 1 เท่านั้น

อัลกอริทึม 1: ตัวหารระหว่าง 2 ถึง N-1 จะถูกทดสอบ

/ **************************

  • prime_number1.c * / / * อัลกอริทึม: ทดสอบตัวหารทั้งหมด * / # รวม int หลัก (เป็นโมฆะ) {int i, nb, จำนวน, การทดสอบ; test = count = 0; printf ("ป้อนจำนวนเต็ม:"); if (scanf ("% d", & nb)! = 1) return -1; สำหรับ (i = 2; i <nb; i ++, count ++) หาก (nb% i == 0) ทดสอบ = 1; if (! test) printf ("% d จำนวนเฉพาะ, จำนวนการวนซ้ำ =% dn", nb, จำนวน) else printf ("% d ไม่ใช่หมายเลขเฉพาะจำนวนการวนซ้ำ =% dn", nb, จำนวน) กลับ 0 }

อัลกอริธึมที่ 2: แม้ตัวหารจะไม่ถูกทดสอบการวิจัยก็ถูก จำกัด โดยตัวหารที่แปลก

/ **************************

  • prime_number2.c * / / * อัลกอริทึม: ยกเว้นตัวเลขคู่และ * ทดสอบตัวหารทั้งหมด * / # รวม main int (void) {int i, nb, count, test; test = count = 0; printf ("ป้อนจำนวนเต็ม:"); if (scanf ("% d", & nb)! = 1) return -1; ถ้า (nb% 2 == 0) ทดสอบ = 1; อื่น {สำหรับ (i = 3; i <nb; i + = 2, นับ ++) หาก (nb% i == 0) ทดสอบ = 1; } if (! test) printf ("% d จำนวนเฉพาะ, จำนวนการวนซ้ำ =% dn", nb, จำนวน) else printf ("% d ไม่ใช่หมายเลขเฉพาะจำนวนการวนซ้ำ =% dn", nb, จำนวน) กลับ 0 }

อัลกอริทึม 3: ตัวหารแบบคี่ทั้งหมดจนถึงรากที่สองของ N จะถูกทดสอบ

/ **************************

  • prime_number3.c * / / * อัลกอริทึม: ยกเว้นจำนวนคู่ทั้งหมดและ * ทดสอบตัวหารทั้งหมดจนถึงสแควร์รูท * / #include # รวม int หลัก (เป็นโมฆะ) {int i, nb, นับ, ทดสอบ, ขีด จำกัด ; test = count = 0; printf ("ป้อนจำนวนเต็ม:"); if (scanf ("% d", & nb)! = 1) return -1; limit = sqrt (nb) + 1; ถ้า (nb% 2 == 0) ทดสอบ = 1; อื่น {สำหรับ (i = 3; i <จำกัด ; i + = 2, นับ ++) ถ้า (nb% i == 0) ทดสอบ = 1; } if (! test) printf ("% d จำนวนเฉพาะ, จำนวนการวนซ้ำ =% dn", nb, จำนวน) else printf ("% d ไม่ใช่หมายเลขเฉพาะ, จำนวนการวนซ้ำ =% dn", nb, จำนวน) กลับ 0 }

อัลกอริทึม 4: หยุดโปรแกรมเมื่อพบตัวแบ่ง

/ **************************

  • prime_number4.c * / / * อัลกอริทึม: ยกเว้นจำนวนคู่ทั้งหมดและ * ทดสอบตัวหารทั้งหมดจนถึงรากที่สอง * ออกจากลูปเมื่อพบตัวหารแรก * / #include #include int main (void) {int i, nb, จำนวน ทดสอบขีด จำกัด ; test = count = 0; printf ("ป้อนจำนวนเต็ม:"); if (scanf ("% d", & nb)! = 1) return -1; limit = sqrt (nb) + 1; ถ้า (nb% 2 == 0) ทดสอบ = 1; อื่น {สำหรับ (i = 3; i <จำกัด &&! ทดสอบ; ฉัน + = 2, นับ ++) ถ้า (nb% i == 0) ทดสอบ = 1; } if (! test) printf ("% d จำนวนเฉพาะ, จำนวนการวนซ้ำ =% dn", nb, จำนวน) อื่น printf ("% d ไม่ใช่จำนวนเฉพาะ, จำนวนการวนซ้ำ =% dn", nb, นับ); กลับ 0 }
บทความก่อนหน้านี้ บทความถัดไป

เคล็ดลับยอดนิยม