Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
1 / 1 / 0
Регистрация: 21.04.2021
Сообщений: 29

Найти наибольший элемент массива, имеющий ровно К делителей

21.04.2021, 11:24. Показов 1768. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу на языке Python: Дан одномерный целочисленный массив(список). Элементы списка задаются случайным образом. Составить программы для решения следующих задач:Найти наибольший элемент массива, имеющий ровно К делителей.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2021, 11:24
Ответы с готовыми решениями:

Найти наибольший элемент массива, имеющий ровно К делителей
Дан одномерный целочисленный массив(список). Элементы списка задаются случайным образом. Составить программы для решения следующих...

Найти наибольший элемент массива K, не имеющий себе равных в массиве L.
Даны два целочисленных массива K(m) и L(n). Найти наибольший элемент массива K, не имеющий себе равных в массиве L.

Найти наибольший элемент массива К, не имеющий себе равных в массиве L
Здравствуйте. Дано два целочисленных массива K(m) и L(n). Найти наибольший элемент массива К, не имеющий себе равных в массиве L. Задал...

6
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
21.04.2021, 11:38
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import random
 
 
def lister(n,k):
    mlist = list(random.randint(1, 100) for i in range(n))
    print(mlist)
    res=(max(mlist))
    print(res)
    r=0
    cnt=0
    for i in range(1, res+1):
        if res%i==0:
            r+=1
    print(r)
    for i in mlist:
        if r==k:
            cnt+=1
    print(cnt)
 
 
 
 
if __name__ == '__main__':
    lister(n=5, k=4)
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
21.04.2021, 12:00
Алина1239,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from random import randint
def fun() :
    a = [randint(2, 10000) for _ in range(10000)]
    k = int(input())
    max_num = 0
    for num in a:
        i = 1
        cnt = 0
        while i*i <= num:
            if num%i == 0:
                cnt += 1 + int(i*i != num)
            if cnt > k:
                break
            i += 1
        if cnt == k and num > max_num:
            max_num = num
    return max_num
 
print(fun())
1
1 / 1 / 0
Регистрация: 21.04.2021
Сообщений: 29
23.04.2021, 14:40  [ТС]
Gdez, можете, пожалуйста, объяснить, что тут делаем:
Цитата Сообщение от Gdez Посмотреть сообщение
max_num = 0
    for num in a:
        i = 1
        cnt = 0
        while i*i <= num:
            if num%i == 0:
                cnt += 1 + int(i*i != num)
            if cnt > k:
                break
            i += 1
        if cnt == k and num > max_num:
            max_num = num
    return max_num
print(fun())
Добавлено через 3 минуты
Gdez, вот моя программа, но начиная с if col==k почему то не выводит число с количеством делителей, которое вводится с клавиатуры, как можно исправить? остальное то все правильно работает, и максимальное находит и количество делителей:

import random
l=[]
n=int(input("n="))
k=int(input("k="))
for i in range(n):
l.append(random.randint(1,1000))
for i in range(n):
print(l[i],end=" ")
print()
x=l[0]
for i in range(1,n):
if l[i]>x:
x=l[i]
col=0
for i in range(1,x+1):
if x % i==0:
col+=1
if col==k:
print(x)
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
23.04.2021, 15:05
Лучший ответ Сообщение было отмечено Алина1239 как решение

Решение

Алина1239,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import random
l=[]
n=int(input("n="))
k=int(input("k="))
for i in range(n):
    l.append(random.randint(1,1000))
for i in range(n): 
    print(l[i],end=" ")
print()
# num - максимальноей число с k делителями
num=-1
for i in range(1,n): 
    x=l[i]
    col=0
    for i in range(1,x+1): 
        if x % i==0:
            col+=1 
        # если число делителей превысило k - выходим
        if col > k:
            break
    if col==k:
        if x > num:
            num = x
print(num)
0
1 / 1 / 0
Регистрация: 21.04.2021
Сообщений: 29
23.04.2021, 15:13  [ТС]
Gdez, спасибо большое)
0
Эксперт Python
8840 / 4492 / 1864
Регистрация: 27.03.2020
Сообщений: 7,312
23.04.2021, 15:19
Алина1239,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from random import randint
def fun() :
    a = [randint(2, 10000) for _ in range(10000)]
    k = int(input())
    max_num = 0
    # проходим по списку
    for num in a:
        i = 1
        cnt = 0
        # i - делитель. Если число делится на i,
        # значит определено сразу два делителя - i и num//i 
        # поэтому достаточно i до sqrt(n) проходить
        while i*i <= num:
            if num%i == 0:
                # воот тут прибавляем сразу два делителя
                # за исключением квадратов, например
                # для 36 будет
                # i = 1    num//i = 36
                # i = 2    num//i = 18
                # i = 3    num//i = 12
                # i = 4    num//i = 9
                # i = 6    num//i = 6
                # последняя пара одинаковая и в ней не 2,
                # а один делитель. и int(i*i != num) будет
                # для этого i равно 0
                cnt += 1 + int(i*i != num)
            if cnt > k:
                break
            i += 1
        if cnt == k and num > max_num:
            max_num = num
    return max_num
 
print(fun())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2021, 15:19
Помогаю со студенческими работами здесь

Найти наибольший элемент массива K, не имеющий себе равных в массиве L
Данные два целочисленные массивы K (m) и L (n). Найти наибольший элемент массива K, не имеет себе равных в массиве L

Даны два целочисленных массива A(m) и B(n). Найти наибольший элемент массива А, не имеющий себе равных в массиве В.
Даны два целочисленных массива A(m) и B(n). Найти наибольший элемент массива А, не имеющий себе равных в массиве В. Помогите плизз... ...

Что-то не хочет пахать :( | Даны два целочисленных массива К(m) и L(n). Найти наибольший элемент массива K, не имеющий себе равных в массиве L.
Даны два целочисленных массива К(m) и L(n). Найти наибольший элемент массива K, не имеющий себе равных в массиве L. #include...

Задан одномерный массив имеющий n элемент. Подсчитать и выводить наибольший элемент массива и номер этого элемента
здрасте,нужна решения и блок схема к этой задаче по турбо паскаль(просто недавна с армии,ниче не помню))) Задан одномерный массив...

Найти наибольший элемент, имеющий в своем составе цифру 3, и его порядковый номер
Задание: найти наибольший элемент и его порядковый номер имеющий в своем составе цифру 3. Вот мой код: def Check3(value) m=0 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru