• Domingo 15 de Diciembre de 2024, 06:33

Autor Tema:  Programa que halla la suma de dos potencias de enteros  (Leído 1090 veces)

doliyubidi

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Programa que halla la suma de dos potencias de enteros
« en: Lunes 28 de Septiembre de 2009, 00:38 »
0
Buenas, tengo un problema que le dejaron a un amigo en su clase de programacion, y y que le piden que escriba en lenguaje C, usando solo funciones y punteros y arreglos :

Un programa que determine la cantidad de formas distintasT en las que se puede escribir un numero entero N como suma de dos potencias  a^p + b^q donde a>=b>=1, p>=2 y q>=2.  para la potencias de uno solo se considera 1^2, y piden que el numero este en un rango de [1, 1000].

ejem: 17=4^2+1^2=3^2+2^3 en este caso T seria igual a 2.

Ya se me a ocurrido una idea, y es hacerlo a fuerza bruta, osea primero hallar los resultadoss de las potencias al cuadrado de numeros del 1 a la n en donde la potencia sea menor a 1000, y asi seguir hasta llegar a la potencia de 2 a la 10, en donde cada resultado de la potencia se guardaria en un arreglo, en total serian algo de 52 elementos del arreglo, y luego descomponer por sumas al numero N, en este caso las sumas totales serian N/2, y luego cada sumando se compararia a un elemento del arreglo, si ambos coinciden con alguno, entonces T incrementaria en uno, hasta comparar todas las posibilidades. calculando el numero total de posibilidades para el numero mayor que es 1000, serian de 1000/2=500 posibilidades que en donde cada sumando de N se compararia con un arreglo,  2*500*52=52000, pero veo que seria demasiadas comparaciones.
Si alguien encuentra una solucion sin tantas comparaciones, le estaria agradecido.

eternity

  • Miembro activo
  • **
  • Mensajes: 78
  • Nacionalidad: ar
    • Ver Perfil
    • http://lameriendadejuan.blogspot.com/
Re: Programa que halla la suma de dos potencias de enteros
« Respuesta #1 en: Lunes 28 de Septiembre de 2009, 14:50 »
0
decile a tu amigo que en este foro no se hace tarea :bad: