Contar pares (a, b) cuya suma de cubos sea N (a^3 + b^3 = N)

Dado N, cuente todos los ‘a’ y ‘b’ que satisfacen la condición a^3 + b^3 = N. 
Ejemplos: 
 

Input : N = 9
Output : 2
1^3 + 2^3 = 9
2^3 + 1^3 = 9

Input : N = 28
Output : 2
 1^3 + 3^3 = 28
 3^3 + 1^3 = 28

Nota: (a, b) y (b, a) deben considerarse como dos pares diferentes. 
Preguntado en: Adobe
 

Implementation:
Traverse numbers from 1 to cube root of N. 
  a) Subtract cube of current number from 
    N and check if their difference is a 
    perfect cube or not.
      i) If perfect cube then increment count.

2- Return count.

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ program to count pairs whose sum
// cubes is N
#include<bits/stdc++.h>
using namespace std;
 
// Function to count the pairs satisfying
// a ^ 3 + b ^ 3 = N
int countPairs(int N)
{
    int count = 0;
 
    // Check for each number 1 to cbrt(N)
    for (int i = 1; i <= cbrt(N); i++)
    {
        // Store cube of a number
        int cb = i*i*i;
 
        // Subtract the cube from given N
        int diff = N - cb;
 
        // Check if the difference is also
        // a perfect cube
        int cbrtDiff = cbrt(diff);
 
        // If yes, then increment count
        if (cbrtDiff*cbrtDiff*cbrtDiff == diff)
            count++;
    }
 
    // Return count
    return count;
}
 
// Driver program
int main()
{
    // Loop to Count no. of pairs satisfying
    // a ^ 3 + b ^ 3 = i for N = 1 to 10
    for (int i = 1; i<= 10; i++)
        cout << "For n = " << i << ", "
             << countPairs(i) <<" pair exists\n";
 
    return 0;
}

Java

// Java program to count pairs whose sum
// cubes is N
 
class Test
{
    // method to count the pairs satisfying
    // a ^ 3 + b ^ 3 = N
    static int countPairs(int N)
    {
        int count = 0;
      
        // Check for each number 1 to cbrt(N)
        for (int i = 1; i <= Math.cbrt(N); i++)
        {
            // Store cube of a number
            int cb = i*i*i;
      
            // Subtract the cube from given N
            int diff = N - cb;
      
            // Check if the difference is also
            // a perfect cube
            int cbrtDiff = (int) Math.cbrt(diff);
      
            // If yes, then increment count
            if (cbrtDiff*cbrtDiff*cbrtDiff == diff)
                count++;
        }
      
        // Return count
        return count;
    }
     
    // Driver method
    public static void main(String args[])
    {
        // Loop to Count no. of pairs satisfying
        // a ^ 3 + b ^ 3 = i for N = 1 to 10
        for (int i = 1; i<= 10; i++)
            System.out.println("For n = " + i + ", " +
                     + countPairs(i) + " pair exists");
    }
}

Python 3

# Python 3 program to count pairs
# whose sum cubes is N
import math
 
# Function to count the pairs
# satisfying a ^ 3 + b ^ 3 = N
def countPairs(N):
 
    count = 0
 
    # Check for each number 1
    # to cbrt(N)
    for i in range(1, int(math.pow(N, 1/3) + 1)):
     
        # Store cube of a number
        cb = i * i * i
 
        # Subtract the cube from given N
        diff = N - cb
 
        # Check if the difference is also
        # a perfect cube
        cbrtDiff = int(math.pow(diff, 1/3))
 
        # If yes, then increment count
        if (cbrtDiff * cbrtDiff * cbrtDiff == diff):
            count += 1
     
    # Return count
    return count
 
 
# Driver program
 
# Loop to Count no. of pairs satisfying
# a ^ 3 + b ^ 3 = i for N = 1 to 10
for i in range(1, 11):
    print('For n = ', i, ', ', countPairs(i),
                                ' pair exists')
 
 
# This code is contributed by Smitha.

C#

// C# program to count pairs whose sum
// cubes is N
  
using System;
class Test
{
    // method to count the pairs satisfying
    // a ^ 3 + b ^ 3 = N
    static int countPairs(int N)
    {
        int count = 0;
       
        // Check for each number 1 to cbrt(N)
        for (int i = 1; i <= Math.Pow(N,(1.0/3.0)); i++)
        {
            // Store cube of a number
            int cb = i*i*i;
       
            // Subtract the cube from given N
            int diff = N - cb;
       
            // Check if the difference is also
            // a perfect cube
            int cbrtDiff = (int) Math.Pow(diff,(1.0/3.0));
       
            // If yes, then increment count
            if (cbrtDiff*cbrtDiff*cbrtDiff == diff)
                count++;
        }
       
        // Return count
        return count;
    }
      
    // Driver method
    public static void Main()
    {
        // Loop to Count no. of pairs satisfying
        // a ^ 3 + b ^ 3 = i for N = 1 to 10
        for (int i = 1; i<= 10; i++)
            Console.Write("For n = " + i + ", " +
                     + countPairs(i) + " pair exists"+"\n");
    }
}

PHP

<?php
// PHP program to count pairs
// whose sum cubes is N
 
// Function to count the pairs
// satisfying a ^ 3 + b ^ 3 = N
function countPairs($N)
{
    $count = 0;
 
    // Check for each number
    // 1 to cbrt(N)
    for ($i = 1;
         $i <= (int)pow($N, 1 / 3); $i++)
    {
        // Store cube of a number
        $cb = $i * $i * $i;
 
        // Subtract the cube from
        // given N
        $diff = ($N - $cb);
 
        // Check if the difference is
        // also a perfect cube
        $cbrtDiff = (int)pow($diff, 1 / 3);
 
        // If yes, then increment count
        if ($cbrtDiff * $cbrtDiff *
                        $cbrtDiff == $diff)
            $count++;
    }
 
    // Return count
    return $count;
}
 
// Driver Code
 
// Loop to Count no. of pairs
// satisfying a ^ 3 + b ^ 3 = i
// for N = 1 to 10
for ($i = 1; $i<= 10; $i++)
    echo "For n = " , $i , ", ",
          countPairs($i) ," pair exists\n";
 
// This code is contributed by jit_t
?>

Javascript

<script>
    // Javascript program to count pairs whose sum cubes is N
     
    // method to count the pairs satisfying
    // a ^ 3 + b ^ 3 = N
    function countPairs(N)
    {
        let count = 0;
         
        // Check for each number 1 to cbrt(N)
        for (let i = 1; i <= parseInt(Math.pow(N,(1.0/3.0)), 10); i++)
        {
            // Store cube of a number
            let cb = i*i*i;
         
            // Subtract the cube from given N
            let diff = N - cb;
         
            // Check if the difference is also
            // a perfect cube
            let cbrtDiff = parseInt(Math.pow(diff,(1.0/3.0)), 10);
         
            // If yes, then increment count
            if (cbrtDiff*cbrtDiff*cbrtDiff == diff)
                count++;
        }
         
        // Return count
        return count;
    }
     
    // Loop to Count no. of pairs satisfying
    // a ^ 3 + b ^ 3 = i for N = 1 to 10
    for (let i = 1; i<= 10; i++)
      document.write("For n = " + i + ", " + countPairs(i) + " pair exists"+"</br>");
     
</script>

Producción: 
 

For n= 1, 1 pair exists
For n= 2, 1 pair exists
For n= 3, 0 pair exists
For n= 4, 0 pair exists
For n= 5, 0 pair exists
For n= 6, 0 pair exists
For n= 7, 0 pair exists
For n= 8, 1 pair exists
For n= 9, 2 pair exists
For n= 10, 0 pair exists

Referencia: https://www.careercup.com/question?id=5954491572551680
Este artículo es una contribución de Sahil Chhabra . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *