이 기사에서 우리는 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