pow() gibt dir eine Gleitkommazahl zurück, aber du möchtest eine Ganzzahl.
Bei Gleitkommazahlen gibt es immer ungenauigkeiten. Das Ergebnis von pow(5,3) wird mit Sicherheit 124,999999999999999999999... heißen.
Ein einfacher Cast auf einen Integer schneidet die Nachkommastellen einfach weg und du erhälst 124, anstatt den 125.
Darum sollte man auch nie Gleitkommazahlen Gleichheit prüfen.
Zum Thema kannst du dir dies durchlesen: http://de.wikipedia.org/wiki/Gleitkommazahl
Also musst du den Wert runden. Ich weiß jetzt nicht aus dem Kopf, obs eine Rundungsfunktion gibt und Google konnte mir da auf die Schnelle auch nicht weiterhelfen, aber dies kann man auch mittels einer Addition lösen