почему не выполняется условие? python

n = int(input())

res = []

for i in range(2, n):
    counter = 0
    
    for j in range(2, i+1):
        
        if i % j == 0:
            counter+=1
            
        if 1 > counter:
            print(f'{i}-i, {counter}-counter')
            
            if i not in res:
                res.append(i)
                
        print(f'{i} % {j} == {i % j}')
        
print(*res)

суть кода выдать все простые числа до числа указанного пользователем. если смотреть по коду, то счётчик у девятки(i) равен 2, но всё равно выполняется второй блок с условием if counter < 1. помогите понять почему это происходит


Ответы (1 шт):

Автор решения: Fox Fox

Рабочий консольный пример на эту тему:

import os

v_start = 0
v_end = 1000

lst_primes = []

for n in range(v_start, v_end + 1):
 for i in range(2, int(n ** 0.5) + 1):
  if not n % i: break
 else: lst_primes.append(n)

print("\nПростые числа в диапазоне от", v_start, "до", v_end, ":\n", lst_primes)

os.system("pause")
→ Ссылка