Программа Python. Помогите выполнить задание.
Дан промежуток от 1 до 1000. Вывести числа, имеющие 5 делителей. (Программу написать через цикл While).
Дан промежуток от 1 до 1000. Вывести числа, имеющие 5 делителей. (Программу написать через цикл While).
Если немного подумать, то нечётное число делителей может иметь только квадрат натурального числа.
Если ещё немного подумать, 3 делителя имеет только квадрат простого числа, а 5 делителей - только четвёртая степень простого числа.
Корень четвёртой степени из 1000 равен 5.62.
От 2 до 5 включительно существует только 3 простых числа.
Ответ:
print(*[i ** 4 for i in [2, 3, 5]])
Но если хочешь через задницу и цикл while, то:
def cnt(n):
~~res, i = 0, 1
~~while i * i < n:
~~~~res += (n % i == 0) * 2
~~~~i += 1
~~res += i * i == n
~~return res
for i in range(2, 1001):
~~if cnt(i) == 5: print(i)
lower = int(input("Введите нижнюю границу диапазона:"))
upper = int(input("Введите верхнюю границу диапазона:"))
n = int(input("Введите делитель:"))
for i in range(lower, upper + 1):
if(i % n == 0):
print(i)