logo

Finden Sie eindeutige Paare, bei denen jedes Element kleiner oder gleich N ist

Finden Sie bei einer gegebenen ganzen Zahl N die Anzahl der Paare, die die folgenden Bedingungen erfüllen, und zeigen Sie sie an:

  • Das Quadrat des Abstands zwischen diesen beiden Zahlen ist gleich LCM dieser beiden Zahlen.
  • Der GCD dieser beiden Zahlen ist gleich dem Produkt zweier aufeinanderfolgender ganzer Zahlen.
  • Beide Zahlen im Paar sollten kleiner oder gleich N sein.

NOTIZ: Es sollten nur die Paare angezeigt werden, die beide oben genannten Bedingungen gleichzeitig erfüllen, und diese Zahlen müssen kleiner oder gleich N sein.

Beispiele:   



  Input:   10   Output:   No. of pairs = 1 Pair no. 1 --> (2 4)   Input:   500   Output:   No. of pairs = 7 Pair no. 1 --> (2 4) Pair no. 2 --> (12 18) Pair no. 3 --> (36 48) Pair no. 4 --> (80 100) Pair no. 5 --> (150 180) Pair no. 6 --> (252 294) Pair no. 7 --> (392 448)

Erläuterung:
Die folgenden Tabellen geben einen klaren Überblick darüber, was zu finden ist:  

Finden Sie eindeutige Paare, bei denen jedes Element kleiner oder gleich N ist' title=

Wie finde ich die Größe meines Monitors heraus?

Die obigen Tabellen zeigen die GCD, die durch das Produkt zweier aufeinanderfolgender Zahlen und ihrer entsprechenden Vielfachen gebildet wird, wobei für jeden Wert ein EINZIGARTIGES PAAR existiert. Grüne Einträge in jeder Zeile bilden ein eindeutiges Paar für die entsprechende GCD.
Notiz: In den obigen Tabellen  

  1. Für den 1. Eintrag GCD=2 bilden das 1. und das 2. Vielfache von 2 das eindeutige Paar (2 4)
  2. Ebenso bilden für den 2. Eintrag GCD=6 das 2. und das 3. Vielfache von 6 das eindeutige Paar (12 18).
  3. Ähnlich geht es weiter mit dem Z-ten Eintrag, d. h. für GCD = Z*(Z+1). Es ist klar, dass das eindeutige Paar aus dem Z-ten und dem (Z+1)-ten Vielfachen von GCD = Z*(Z+1) bestehen wird. Jetzt ist das Z-te Vielfache von GCD Z * (Z*(Z+1)) und das (Z+1)-te Vielfache von GCD ist (Z + 1) * (Z*(Z+1)).
  4. Und da der Grenzwert N ist, muss die zweite Zahl im eindeutigen Paar kleiner oder gleich N sein. Also (Z + 1) * (Z*(Z+1))<= N. Simplifying it further the desired relation is derived Z3+ (2*Z2) + Z<=N

Dies bildet ein Muster und aus der mathematischen Berechnung wird abgeleitet, dass für ein gegebenes N die Gesamtzahl solcher eindeutigen Paare (z. B. Z) der unten gezeigten mathematischen Beziehung folgt: 

Z3 + (2*Z2) + Z <= N


Nachfolgend finden Sie die erforderliche Implementierung:  

C
// C program for finding the required pairs #include  #include  // Finding the number of unique pairs int No_Of_Pairs(int N) {  int i = 1;  // Using the derived formula  while ((i * i * i) + (2 * i * i) + i <= N)  i++;  return (i - 1); } // Printing the unique pairs void print_pairs(int pairs) {  int i = 1 mul;  for (i = 1; i <= pairs; i++) {  mul = i * (i + 1);  printf('Pair no. %d --> (%d %d)n'  i (mul * i) mul * (i + 1));  } } // Driver program to test above functions int main() {  int N = 500 pairs mul i = 1;  pairs = No_Of_Pairs(N);  printf('No. of pairs = %d n' pairs);  print_pairs(pairs);  return 0; } 
Java
// Java program for finding // the required pairs import java.io.*; class GFG  {    // Finding the number  // of unique pairs  static int No_Of_Pairs(int N)  {  int i = 1;    // Using the derived formula  while ((i * i * i) +   (2 * i * i) + i <= N)  i++;    return (i - 1);  }    // Printing the unique pairs  static void print_pairs(int pairs)  {  int i = 1 mul;  for (i = 1; i <= pairs; i++)  {  mul = i * (i + 1);  System.out.println('Pair no. ' + i + ' --> (' +   (mul * i) + ' ' +   mul * (i + 1) + ')');   }  }    // Driver code  public static void main (String[] args)  {  int N = 500 pairs mul i = 1;  pairs = No_Of_Pairs(N);    System.out.println('No. of pairs = ' + pairs);  print_pairs(pairs);  } } // This code is contributed by Mahadev. 
Python3
# Python3 program for finding the required pairs # Finding the number of unique pairs def No_Of_Pairs(N): i = 1; # Using the derived formula while ((i * i * i) + (2 * i * i) + i <= N): i += 1; return (i - 1); # Printing the unique pairs def print_pairs(pairs): i = 1; mul = 0; for i in range(1 pairs + 1): mul = i * (i + 1); print('Pair no.'  i ' --> (' (mul * i) ' ' mul * (i + 1) ')'); # Driver Code N = 500; i = 1; pairs = No_Of_Pairs(N); print('No. of pairs = ' pairs); print_pairs(pairs); # This code is contributed # by mits 
C#
// C# program for finding // the required pairs using System; class GFG  {   // Finding the number // of unique pairs static int No_Of_Pairs(int N) {  int i = 1;  // Using the derived formula  while ((i * i * i) +   (2 * i * i) + i <= N)  i++;  return (i - 1); } // Printing the unique pairs static void print_pairs(int pairs) {  int i = 1 mul;  for (i = 1; i <= pairs; i++)  {  mul = i * (i + 1);  Console.WriteLine('Pair no. ' + i + ' --> (' +   (mul * i) + ' ' +   mul * (i + 1) + ')');   } } // Driver code static void Main() {  int N = 500 pairs;  pairs = No_Of_Pairs(N);  Console.WriteLine('No. of pairs = ' +   pairs);  print_pairs(pairs); } } // This code is contributed by mits 
PHP
 // PHP program for finding  // the required pairs // Finding the number  // of unique pairs function No_Of_Pairs($N) { $i = 1; // Using the  // derived formula while (($i * $i * $i) + (2 * $i * $i) + $i <= $N) $i++; return ($i - 1); } // Printing the unique pairs function print_pairs($pairs) { $i = 1; $mul; for ($i = 1; $i <= $pairs; $i++) { $mul = $i * ($i + 1); echo 'Pair no.'  $i ' --> ('  ($mul * $i) ' ' $mul * ($i + 1)') n'; } } // Driver Code $N = 500; $pairs; $mul; $i = 1; $pairs = No_Of_Pairs($N); echo 'No. of pairs = ' $pairs  ' n'; print_pairs($pairs); // This code is contributed // by Akanksha Rai(Abby_akku) ?> 
JavaScript
<script> // Javascript program for finding the  // required pairs // Finding the number of unique pairs function No_Of_Pairs(N) {  let i = 1;  // Using the derived formula  while ((i * i * i) +  (2 * i * i) + i <= N)  i++;  return (i - 1); } // Printing the unique pairs function print_pairs(pairs) {  let i = 1 mul;  for(i = 1; i <= pairs; i++)   {  mul = i * (i + 1);  document.write('Pair no. ' + i +   ' --> (' + (mul * i) +  ' ' + mul * (i + 1) +   ')  
'
); } } // Driver code let N = 500 pairs mul i = 1; pairs = No_Of_Pairs(N); document.write('No. of pairs = ' + pairs + '
'
); print_pairs(pairs); // This code is contributed by mohit kumar 29 </script>
C++14
// C++ code for the above approach: #include    using namespace std; // Finding the number of unique pairs int No_Of_Pairs(int N) {  int i = 1;  // Using the derived formula  while ((i * i * i) + (2 * i * i) + i <= N)  i++;  return (i - 1); } // Printing the unique pairs void print_pairs(int pairs) {  int i = 1 mul;  for (i = 1; i <= pairs; i++) {  mul = i * (i + 1);  cout << 'Pair no. '<< i <<' --> (' << (mul * i) << ' '<< mul * (i + 1) << ')' <<endl;;  } } // Driver Code int main() {  int N = 500 pairs mul i = 1;  pairs = No_Of_Pairs(N);  cout << 'No. of pairs = ' << pairs << endl;  print_pairs(pairs);  return 0; } 

Ausgabe:  
No. of pairs = 7 Pair no. 1 --> (2 4) Pair no. 2 --> (12 18) Pair no. 3 --> (36 48) Pair no. 4 --> (80 100) Pair no. 5 --> (150 180) Pair no. 6 --> (252 294) Pair no. 7 --> (392 448)

 

Zeitkomplexität : AN1/3)
Hilfsraum : O(1)