ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมค้นหาเลขเฉพาะสองตัวที่แตกต่างกันกับผลิตภัณฑ์ที่ระบุ มาดูตัวอย่างกัน
ป้อนข้อมูล − 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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น