Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [190201; 190230], числа, имеющие ровно 4 различных делителя. Выведите эти четыре делителя для каждого найденного числа в порядке убывания. Язык Python.
Ответы
y = []
hmas = []
for num in range(190201, 190230 +1):
hmas = []
for divider in range(1, num+1):
if num % divider == 0: hmas.append(divider)
if len(hmas) == 4: y.append([num, hmas])
for element in y:
print(f"{element[0]}:", sorted(element[1], reverse = True))
Ответ:
190201 17291 11 1
190202 95101 2 1
190214 95107 2 1
190219 853 223 1
190222 95111 2 1
190223 17293 11 1
190227 63409 3 1
190229 14633 13 1
Объяснение:
v = [0] * 190231
a = []
# решето Эратосфена
for i in range(1, 190231):
for j in range(i, 190231, i):
v[j] += 1
# проверка, что число нам подходит
if v[i] == 4 and 190201 <= i <= 190230:
a.append(i)
# вывод делителей
for i in range(len(a)):
for j in range(a[i], 0, -1):
if a[i] % j == 0:
print(j, end=' ')
print()
Решето Эратосфена - это ОЧЕНЬ быстрый и эффективный алгоритм. Пользуйтесь Эратосфеном и будет вам счастье :)))))