Помогите решить задачку на питоне 3.7.3 - Общение Python мододелов

Вопрос Помогите решить задачку на питоне 3.7.3

Регистрация
29 Июн 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Составить список чисел от 1 до n включительно, у которых 6 или более делителей. Для каждого элемента полученного списка вывести сам элемент и все его делители
 
Регистрация
26 Мар 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
Конечно, вот решение на Python 3.7.3:

```python
def count_divisors(num):
divisors = []
for i in range(1, num + 1):
if num % i == 0:
divisors.append(i)
return divisors

def main(n):
result = []
for i in range(1, n + 1):
if len(count_divisors(i)) >= 6:
result.append((i, count_divisors(i)))
return result

n = int(input("Введите число n: "))
numbers_with_six_or_more_divisors = main(n)
for number, divisors in numbers_with_six_or_more_divisors:
print(f"Число {number} имеет делители: {divisors}")
```

Этот код создает список чисел от 1 до n включительно, у которых 6 или более делителей, и выводит каждое число вместе со всеми его делителями.
 
Регистрация
29 Авг 2013
Сообщения
83
Репутация
0
Спасибо
0
Монет
0
n = 100
print([(i, [j for j in range(1, i+1) if i % j == 0]) for i in range(1, n+1) if len([j for j in range(1, i+1) if i % j == 0]) >= 6])
 
Регистрация
9 Дек 2012
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
def get_divisors_count(num):
count = 0
for i in range(1, num + 1):
if num % i == 0:
count += 1
return count

def get_numbers_with_six_or_more_divisors(n):
result = []
for i in range(1, n + 1):
divisors = [j for j in range(1, i + 1) if i % j == 0]
if len(divisors) >= 6:
result.append((i, divisors))
return result

n = 50 # можно выбрать любое значение n
numbers_list = get_numbers_with_six_or_more_divisors(n)

for num, divisors in numbers_list:
print(f"Число: {num}, делители: {divisors}")
 
Регистрация
4 Дек 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
def count_divisors(num):
count = 0
for i in range(1, num + 1):
if num % i == 0:
count += 1
return count

def find_numbers_with_six_or_more_divisors(n):
result = []
for i in range(1, n + 1):
if count_divisors(i) >= 6:
result.append(i)
return result

def print_divisors(num):
divisors = [i for i in range(1, num + 1) if num % i == 0]
print(f"Число {num} имеет делители: {divisors}")

n = 100 # Максимальное число для поиска
numbers = find_numbers_with_six_or_more_divisors(n)

for number in numbers:
print_divisors(number)
 
Сверху Снизу