# Πρόγραμμα Υπολογισμού Δυνάμεων ενός αριθμού

# Ορισμός συνάρτησης υπολογισμού του αριθμού Α στην N-οστή δύναμη
# Παράμετροι Εισόδου οι δύο μεταβλητές Α και Ν
def dynami_tou(A,N):
    # Έλεγχος εάν η τιμή της μεταβλητής Ν, που αφορά τον εκθέτη, είναι 0
    if N==0 :
        # Εάν είναι 0, τότε το apotelesma είναι 1
        apotelesma=1
    else:
        # Εάν δεν είναι 0, τότε το αποτέλεσμα είναι το γινόμενο
        # του αριθμού Α με το αποτέλεσμα της κλήσης της ίδιας συνάρτησης
        # dynami_tou() για A και τον αριθμό Ν-1
        apotelesma= A * dynami_tou(A,N-1)
    # Ως τιμή εξόδου επιστρέφεται η τιμή της μεταβλητής apotelesma 
    return apotelesma

# Εμφάνιση Μηνύματος Καλωσορίσματος
print("Καλώς Ήρθατε στο Πρόγραμμα Υπολογισμού Δυνάμεων ενός αριθμού")
print()

# Εισαγωγή από τον χρήστη της Βάσης της δύναμης
basi=float(input("Εισάγετε τη Βάση της δύναμης:"))
# Εισαγωγή από τον χρήστη του εκθέτη μέχρι τον οποία τη δύναμη
# θα υπολογίσει το πρόγραμμα
ekthetis_max=int(input("Εισάγετε τον εκθέτη (φυσικό αριθμό) μέχρι \
τον οποίο τη δύναμη θέλετε το πρόγραμμα να υπολογίσει:"))

# Επανάληψη for με μεταβλητή i η οποία θα λάβει όλους τους ακεραιους
# από το 0 μέχρι και το ekthetis_max
for i in range(ekthetis_max+1):
    print("H δύναμη του αριθμού",basi,"στη δύναμη", i,"ισούται με",\
          dynami_tou(basi,i))
    
# Εμφάνιση Μηνύματος Τέλους
print()
print("Ευχαριστούμε που χρησιμοποιήσατε το Πρόγραμμα \
Yπολογισμού Δυνάμεων ενός αριθμού") 
