Исправлено. Сначала я сделал оператор деления на этаж //
, чтобы он возвращал целое число. Кроме того, я поставил условие, что делитель не может быть разделен сам по себе. Потому что в противном случае 4 будет простым 4.
lower = int(input("Lower Bound: "))
upper = int(input("Upper Bound: "))
print ("Primes between " + str(lower) + " and " + str(upper) + ": ")
primes = []
for i in range (lower, upper):
for num in range (2, upper//2):
if i % num == 0 and num != i: # modification here
print (str(i-(lower-1)) + ". " + str(i) + " = No")
break
else:
primes.append(i)
print(primes)
Out[1]: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43]