ในบทความนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาคู่ของตัวเลขที่ไม่ซ้ำกันซึ่งมีองค์ประกอบน้อยกว่าหรือเท่ากับ N และปฏิบัติตามเงื่อนไขบางประการ -
-
ค่ายกกำลังสองระหว่างตัวเลขทั้งสองต้องเท่ากับ LCM ของตัวเลขสองตัวนั้น
-
HCF ของตัวเลขสองตัวนี้สามารถแสดงเป็นผลคูณของตัวเลขสองตัวต่อเนื่องกันได้
แนวทางที่ดีที่สุดในการแก้ปัญหานี้คือการใช้ตัวเลขสองตัวต่อเนื่องกัน (เริ่มจาก 1) และหาผลคูณของผลคูณของตัวเลขเหล่านั้น จากนั้นในบรรดาทวีคูณ ในการระบุคู่ของตัวเลขหนึ่งคู่ เราต้องตรวจสอบว่าตัวเลขในคู่ตรงตามเงื่อนไขแรกที่กำหนดหรือไม่
ตัวอย่างเช่น นำกรณีของ 2 และ 3 ผลคูณของพวกมันคือ 6 ทีนี้ถ้าเราคูณด้วย 6 ต่อไป เราจะได้ 6, 12, 18, 24 … นำตัวเลขสองตัวพร้อมกัน เราจะตรวจสอบว่า กำลังสองของผลต่างระหว่างตัวเลขสองตัวติดต่อกัน (36 ในกรณีนี้) เท่ากับ LCM ของตัวเลขเหล่านั้น ในที่สุดเราก็ได้คู่ในกรณีนี้เป็น 12 และ 18
สรุปสมการ เราได้ตัวเลขสองตัวเป็น Z * (Z*(Z+1)) และ (Z+1) * (Z*(Z+1)) โดยที่ Z เป็นตัวเลขแรกใน HCF (คู่ติดต่อกัน สินค้า)
สุดท้ายโดยใช้เงื่อนไขว่าค่าควรน้อยกว่า N เราจะได้
(Z+1) * (Z*(Z+1)) <=N หรือ Z 3 + (2*Z 2 ) + Z <=N.
ตัวอย่าง
#include <iostream> using namespace std; int main() { int N = 489, pairs, i = 1; //counting the number of pairs having elements less than N while((i*i*i) + (2*i*i) + i <= N) { i++; } pairs = i; cout << "Pairs :" << endl; //printing the two elements of the pair for(int j = 1; j < pairs; j++) { cout << j*(j*(j+1)) << " " << (j+1)*(j*(j+1)) << endl; } return 0; }
ผลลัพธ์
Pairs : 2 4 12 18 36 48 80 100 150 180 252 294 392 448