ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมค้นหาเลขเฉพาะสองตัวที่แตกต่างกันกับผลิตภัณฑ์ที่ระบุ มาดูตัวอย่างกัน
ป้อนข้อมูล − 21
ผลผลิต − 3 7
ในที่นี้ เราจำเป็นต้องมีจำนวนเฉพาะทั้งหมดที่น้อยกว่าผลคูณที่กำหนด เมื่อเราได้จำนวนเฉพาะแล้ว เราก็สามารถหาคู่ได้อย่างง่ายดาย ทำตามขั้นตอนด้านล่างเพื่อแก้ปัญหา
-
เริ่มต้นผลิตภัณฑ์และอาร์เรย์บูลีนเพื่อจัดเก็บว่าตัวเลขในช่วงเป็นจำนวนเฉพาะหรือไม่
-
ค้นหาจำนวนเฉพาะทั้งหมดที่น้อยกว่าผลิตภัณฑ์ที่กำหนดและจัดเก็บไว้ในอาร์เรย์
-
ทำซ้ำจนกว่าจะได้ผลิตภัณฑ์ที่กำหนด
-
หากจำนวนปัจจุบันเป็นจำนวนเฉพาะและ n / current_number เป็นจำนวนเฉพาะ ให้ตรวจสอบว่ามีความแตกต่างกันหรือไม่
-
หากต่างกันก็พิมพ์ออกมา
-
ตัวอย่าง
มาดูโค้ดกันเลย
#include <bits/stdc++.h> using namespace std; bool primes(int n, bool primeStatus[]) { primeStatus[0] = primeStatus[1] = false; for (int i = 2; i <= n; i++) { primeStatus[i] = true; } for (int i = 2; i * i <= n; i++) { if (primeStatus[i] == true) { for (int j = i * 2; j <= n; j += i) primeStatus[j] = false; } } } int main() { int n = 21; bool primeStatus[n + 1], pairsFound = false; primes(n, primeStatus); for (int i = 2; i < n; i++) { int pair = n / i; if (primeStatus[i] && primeStatus[pair] && pair != i && pair * i == n) { cout << i << " " << pair << endl; pairsFound = true; break; } } if (!pairsFound){ cout << "No pairs"; } return 0; }
ผลลัพธ์
หากคุณเรียกใช้โค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
3 7
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น