C++程式,查詢每個元素小於等於N的唯一數對
在本文中,我們將討論一個程式,該程式用於查詢元素小於等於 N 的唯一數對,並遵循某些條件:
兩個數字之間差的平方必須等於這兩個數字的最小公倍數。
這兩個數字的最大公約數可以表示為任意兩個連續數字的乘積。
解決此問題的最佳方法是從 1 開始取兩個連續的數字,並找到這些數字乘積的倍數。然後,在這些倍數中,為了指定一對數字,我們需要檢查這對數字是否滿足第一個給定的條件。
例如,考慮 2 和 3 的情況。它們的乘積是 6。現在,如果我們繼續使用 6 的倍數,我們將得到 6、12、18、24……一次取兩個數字,我們檢查兩個連續數字之間差的平方(在這種情況下為 36)是否等於這些數字的最小公倍數。最終,我們得到這對數字為 12 和 18。
概括方程,我們得到這兩個數字為 Z * (Z*(Z+1)) 和 (Z+1) * (Z*(Z+1)),其中 Z 是最大公約數(連續對乘積)中的第一個數字。
最後,使用值應小於 N 的條件,我們得到
(Z+1) * (Z*(Z+1)) <= N 或 Z³ + (2*Z²) + 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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP