Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อค้นหาคู่ที่ไม่ซ้ำกันเพื่อให้แต่ละองค์ประกอบมีค่าน้อยกว่าหรือเท่ากับN


ในบทความนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาคู่ของตัวเลขที่ไม่ซ้ำกันซึ่งมีองค์ประกอบน้อยกว่าหรือเท่ากับ 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