Python syntaxini bilmiyorum ama int değişkenleri eger burada virgüllü sayı da alıyorsa mantık yanlış diyebilirim. Çünkü 123 sayısını ele alırsak örnek olarak 0 dan büyük olduğu için döngüye girer 10 a böler ve basamak 1 artar. Sayımız 12.3 olur ve 0 dan büyük olduğu için tekrar 10 a böler ve basamak 2 olur. Sayımız da 1.23 olmuş olur. Daha sonrasında 0 dan büyük olduğu için sayımız yine 10 a böler ve basamak tekrar artarak 3 olur. Sayımız da 0.12 olmuş olur. Tabi ki bu sürekli böyle gider. Integer bir sayı virgulden sonra python da kaç karakterine bakıyorsa o kadar saçma bir sonuç verir size. Dediğim gibi python syntaxini bilmiyorum ama dediğim gibi ise sorun bundan kaynaklanıyor olabilir. Mantığı değiştirerek algoritmayı tekrar yazabilirsiniz bu durumda.