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

โปรแกรม C++ หาคู่ที่ไม่ซ้ำกันที่สมาชิกน้อยกว่าหรือเท่ากับ N


หาคู่ตัวเลขที่ไม่ซ้ำกัน สมาชิก ≤ N และตรงเงื่อนไข:

  1. กำลังสองของความต่าง = LCM ของสองจำนวน
  2. HCF ของสองจำนวน = ผลคูณของจำนวนสองจำนวนติดกัน

วิธีแก้: ใช้จำนวนติดกัน Z, Z+1 หาผลคูณ Z(Z+1) หาตัวคูณของผลคูณนี้ ตรวจสอบเงื่อนไขที่ 1 ได้คู่คือ Z×Z(Z+1) และ (Z+1)×Z(Z+1)

เงื่อนไข ≤ N: (Z+1)×Z(Z+1) ≤ N → Z³ + 2Z² + Z ≤ N

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

int main() {
    int N = 489, pairs, i = 1;
    while((i*i*i) + (2*i*i) + i <= N) i++;
    pairs = i;
    cout << "Pairs :" << endl;
    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