Calcular la suma de los N primeros números elevados al valor P con Python

Iniciado por ThePaquet1, 28 Enero 2021, 20:00 PM

0 Miembros y 1 Visitante están viendo este tema.

ThePaquet1

Hola, necesito hacer un programa de Python que pida dos números. El primer número será N y el segundo P. Una vez obtenidos ambos números el programa deberá calcular la suma de los N primeros números elevados al valor P, siguiendo esta fórmula: 1^P + 2^P + 3^P + 4^P... + N^P

Si introduzco, por ejemplo, un 3 y un 5, el programa calculará lo siguiente: 1^5 + 2^5 + 3^5 = 276

Ahora mismo tengo de código esto:

---------------------------------------
num1 = input('Introduce el primer número: ')
num2 = input('Introduce el segundo número: ')

sum = float(num1) ** float(num2)

print('{0} elevado a {1} es {2}'.format(num1, num2, sum))
---------------------------------------

El problema es que no sé como hacer para que, por ejemplo, si yo introduzco un 3 y un 5, la operación sea 1 ^ 5 + 2 ^ 5 + 3 ^ 5, en vez de únicamente 3^5 que es lo que actualmente hace mi programa. ¿Alguien podría ayudarme?

tincopasan

hay varias formas de resolver esto, siguiendo parte de tu lógica:

Código (python) [Seleccionar]
#-*- coding: utf -8 -*-

num1 = int(input('Introduce el primer número: '))
num2 = int(input('Introduce el segundo número: '))
sum = 0
for x in range(1,num1 + 1):
   sum += x ** num2
   print(f'{x} elevado a {num2} es {x**num2}')
print('la suma total es: ',sum)
   

obviamente que está muy incompleto ya que entre otras cosas no tiene manejo de errores
tampoco entendí porque como float en vez de int
y como ves para realizar una operación varias veces se usa un bucle, en este caso for, pero también podría ser while
cambié tu formato de cadena por uno más legible para mí.

Otra cosa, hay un foro de script

ThePaquet1

Cita de: tincopasan en 28 Enero 2021, 20:32 PM
hay varias formas de resolver esto, siguiendo parte de tu lógica:

Código (python) [Seleccionar]
#-*- coding: utf -8 -*-

num1 = int(input('Introduce el primer número: '))
num2 = int(input('Introduce el segundo número: '))
sum = 0
for x in range(1,num1 + 1):
   sum += x ** num2
   print(f'{x} elevado a {num2} es {x**num2}')
print('la suma total es: ',sum)
   

obviamente que está muy incompleto ya que entre otras cosas no tiene manejo de errores
tampoco entendí porque como float en vez de int
y como ves para realizar una operación varias veces se usa un bucle, en este caso for, pero también podría ser while
cambié tu formato de cadena por uno más legible para mí.

Otra cosa, hay un foro de script
No sabía de la existencia de los rangos con el for, lo tomaré en cuenta, muchísimas gracias.
Y por cierto, no sabía que había un foro para Python, perdón por eso  ;D

tincopasan

si le entendiste al código genial, sino pregunta, hay muchos usuarios de python, y el foro es de scriptng, o sea cualquier lenguaje no solo de python.