Un número pronico es un número que se puede representar como el producto de dos enteros positivos consecutivos. Al multiplicar estos dos números enteros positivos consecutivos, se puede formar un rectángulo que se representa por el producto o número pronico. Por lo que también se le conoce como Número Rectangular .
Los primeros números Pronic son:
0, 2, 6, 12, 20, 30, 42, 56, 72, 90, 110, 132, 156, 182, 210, 240, 272, 306, 342, 380, 420, 462 . . . . . .
Número pronico es un número que es el producto de dos enteros consecutivos, es decir, un número n es un producto de x y (x+1). La tarea es verificar si un número dado es pronético o no.
Representación Matemática:
If x is a pronic number, then x=n(n+1) ∀ n∈N0 Where, N0={0, 1, 2, 3, 4, ....}, (A set of Natural Numbers)
Ejemplos:
Input : 56 Output : YES Explanation: 56 = 7 * 8 i.e 56 is a product of two consecutive integers 7 and 8. Input : 65 Output : NO Explanation: 65 cannot be represented as a product of any two consecutive integers.
Anteriormente habíamos discutido un enfoque para verificar si un número es pronético o no en este artículo usando un bucle. La complejidad temporal del algoritmo anterior es comparativamente muy alta y, en términos de notación asintótica Big-O, es O(√n).
En este artículo, vamos a explicar un enfoque eficiente con una complejidad temporal de O(log(log n). La idea es observar que si un número se puede expresar como el producto de dos enteros consecutivos, entonces los dos enteros estarán cerca al cuadrado de la raíz de ese número. Una observación más adecuada conducirá al hecho de que un número N puede representarse como producto de dos enteros consecutivos solo si el producto de floor(sqrt(N)) y floor(sqrt(N) )+1 es igual a N.
A continuación se muestra el algoritmo paso a paso del enfoque anterior:
Step 1: Evaluate the square root value of the given number. Step 2: Calculate the floor value of that square root. Step 3: Calculate the product of value calculated in step-2 and its next consecutive number. Step 4: Check the product value in step-3 with the given number. Step 4.1: If the condition satisfies, then the number is a pronic number. Step 4.2: Otherwise the number is not a pronic number.
A continuación se muestra la implementación del algoritmo anterior:
C++
// C/C++ program to check if a number is pronic or not #include<bits/stdc++.h> using namespace std; // function to check Pronic Number bool pronic_check(int n) { int x = (int)(sqrt(n)); // Checking Pronic Number by // multiplying consecutive numbers if (x*(x+1)==n) return true; else return false; } // Driver Code int main(void) { int n = 56; pronic_check(n) == true? cout << "YES" : cout << "NO"; return 0; }
Java
// Java program to check if a number is pronic or not import java.io.*; import java.util.*; import java.math.*; class GFG { // Function to check Pronic Number static boolean pronic_check(int n) { int x = (int)(Math.sqrt(n)); // Checking Pronic Number by // multiplying consecutive numbers if (x * (x + 1) == n) return true; else return false; } // Driver Code public static void main(String[] args) { int n = 56; if (pronic_check(n)==true) System.out.println("YES"); else System.out.println("NO"); } }
Python3
# Python program to check if a number is pronic or not import math # function to check Pronic Number def pronic_check(n) : x = (int)(math.sqrt(n)) # Checking Pronic Number by multiplying # consecutive numbers if (x*(x + 1)== n): return True else: return False # Driver Code n = 56 if (pronic_check(n)==True): print("YES") else: print("NO")
C#
// C# program to check if a number is // pronic or not using System; class GFG { // Function to check Pronic Number static bool pronic_check(int n) { int x = (int)(Math.Sqrt(n)); // Checking Pronic Number by // multiplying consecutive numbers if (x * (x + 1) == n) return true; else return false; } // Driver Code public static void Main() { int n = 56; if (pronic_check(n)==true) Console.Write("YES"); else Console.Write("NO"); } } // This code is contributed by vt_m.
PHP
<?php // PHP program to check if a // number is pronic or not // function to check Pronic Number function pronic_check($n) { $x = floor(sqrt($n)); // Checking Pronic Number by // multiplying consecutive numbers if ($x * ($x + 1) == $n) return true; else return false; } // Driver Code $n = 56; if (pronic_check($n) == true) echo "YES" ; else echo "NO"; // This code is contributed by Sam007 ?>
Javascript
<script> // Javascript program to check if a number is pronic or not // function to check Pronic Number function pronic_check(n) { var x = parseInt(Math.sqrt(n)); // Checking Pronic Number by // multiplying consecutive numbers if (x * (x + 1) == n) return true; else return false; } // Driver Code var n = 56; pronic_check(n) == true? document.write("YES") : document.write("NO"); // This code is contributed by noob2000. </script>
Producción:
YES
Publicación traducida automáticamente
Artículo escrito por SoumyadeepDebnath y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA