'Loop while basics in python 3

I am reading a python basics book and there is one function which I don't understand how it works. How is is possible that output looks like pow function even there are not any ** or pow operation? Would be nice if anyone can help because I am getting more and more frustrated

loop while

summary = 1
number = 1
while number <= 6:
    i = 1
    p = number
    while i < 5:
        p *= number
        i += 1
    print(number, "to 5", p)
    summary += p
    number += 1
print("sum of fifth powers of numbers from 1 to 6 is", summary)

output

1 to 5 1
2 to 5 32
3 to 5 243
4 to 5 1024
5 to 5 3125
6 to 5 7776
sum of fifth powers of numbers from 1 to 6 is 12202


Solution 1:[1]

Let me explain this code briefly, first we are defining,

> summary = 1
> number = 1

Here we are defining and initialising the two variables summary and number.

> while number <= 6:
>     i = 1
>     p = number

In above code we are starting a while loop which will run while the value of number variable is less than or equal to 6. So, the loop will run from 1 to 6. we are taking a variable i = 1 and p = number here.

> while i < 5:
>         p *= number
>         i += 1
> print(number, "to 5", p)
> summary += p
> number += 1 
> print("sum of fifth powers of numbers from 1 to 6 is", summary)

Now, we are having an another nested while loop and this will run for the values 1 to 4 of i variable. As we can see in the loop, the variable p will be multiplied with itself for 4 times so we will get the 5th power of the particular number. then we are increasing value of number by 1 and adding the value of 5th power in variable summary and lastly we are printing that.

Solution 2:[2]

Let me explain with an example

when number=2 (i.e after finding fifth power of 1)
value of p=2 and i=1
then inner loop i.e

 while i<5 :
    p* = number //i.e p = p*number
    i+= 1       //i.e i=i+1
 

goes like this,

iteration 1: p= 2*2 i.e p=4
i=1+1 i.e i=2 which is less than 5

iteration 2: p= 4*2 i.e p=8
i=2+1 i.e i=3 which is less than 5

iteration 3: p= 8*2 i.e p=16
i=3+1 i.e i=4 which is less than 5

iteration 4: p= 16*2 i.e p=32
i=4+1 i.e i=5 which is equal to 5, so it comes out of loop
therefore, 2 to 5=32

this is how we get fifth power of a number

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mitul
Solution 2 Roopa M