Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Олег Ковальчук Ученик (57), на голосовании 11 месяцев назад
Составить список чисел от 1 до n включительно, у которых 6 или более делителей. Для каждого элемента полученного списка вывести сам элемент и все его делители
Голосование за лучший ответ
Егор Малинов Мастер (1068) 1 год назад
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)
Мудрец Мудров Знаток (297) 1 год назад
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}")
Vadim Egorov Мыслитель (7204) 1 год назад
Конечно, вот решение на 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 или более делителей, и выводит каждое число вместе со всеми его делителями.
Татьяна Просветленный (36498) 1 год назад
 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])
Alex M Знаток (309) 1 год назад
Пример с возвращением словаря:
Похожие вопросы