Ich habe folgenden Code geschrieben:
Code: Alles auswählen
import math
a = 0
while a == 0:
b = int(input())
liste = []
string = ''
if b < 4:
c = b
else:
c = math.floor(b**0.5)+1
for i in range(2,c):
liste.append(i)
for i in range(len(liste)):
while b%liste[i] == 0:
string += str(liste[i])
b /= liste[i]
string += ','
if b > 1:
string += str(b)
else:
string = string[:-1]
print(string)
Manchmal ist aber die letzte Zahl dieser Zerlegung ein float,
was mir aber ganz und gar nicht gefällt.
Z.B. bei 11111 gibt er mir 41,271.0 aus
oder bei 1111111111: 11,41,271,9091
also ohne .0
Kann mir jemand erklären, warum er bei manchen Zahlen die letzte Zahl als float behandelt,
bei manchen aber nicht und wie man das vermeiden kann?