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

Максимальное количество делителей

28.01.2020, 08:21. Показов 8422. Ответов 6

Студворк — интернет-сервис помощи студентам
По заданным числам a и b найдите среди всех чисел отрезка [a,b] такое число, которое имеет наибольшее количество делителей. Если таких чисел несколько, то выведите наибольшее.

Входные данные
В единственной строке задано два целых числа: a,b (1≤a≤b≤5000) — границы отрезка поиска.

Выходные данные
Выведите одно целое число — число с наибольшим количеством делителей среди чисел отрезка [a,b]. Если таких чисел несколько, то выведите наибольшее.

Примеры
входные данные
1 10
выходные данные
10

входные данные
3 4
выходные данные
4

входные данные
3 6
выходные данные
6


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
def num_div(n):
        r=2
        i=2
        while (i*i<=n):
                if n%i==0:
                        r+=1
                if n//i != i:
                        r+=1
                i+=1   
        return r
 
def task(a,b):
        xmax=0
        dmax=0
        x=b
        while(x>=a):
                nd=num_div(x)
                if nd>dmax:
                        dmax=nd
                        xmax=x
                x-=1   
        return xmax
 
[a,b]=map(int,input().split(' '))       
print(task(a,b))
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def task(a,b):
    max_ = 0
    result = max((a,b))
    for num in range(a,b+1):
        number_divisors = 2 # число всегда делится на 1 и само себя
        for i in range(2, num):
            if not num % i:
                number_divisors += 1
        if number_divisors > max_:
            max_ = number_divisors
            result = num
    return num
                
a,b = map(int,input().split())
print(task(a,b))
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
35
36
37
N = int(5e3);
lp = [0] * (N + 1)
pr = []
# Решето Эратосфена с линейным времени работы
def gen_primes():
    for i in range(2, N + 1):
        if lp[i] == 0:
            lp[i] = i;
            pr.append(i);
        j = 0
        while j < len(pr) and pr[j] <= lp[i] and i * pr[j] <= N:
            lp[i * pr[j]] = pr[j]
            j+=1
def count_divisors(a):
    ans = 1
    last_prime = lp[a]
    cur = 0
    while (a > 1) :
        if (lp[a] != last_prime):
            ans *= (cur + 1)
            cur = 0
            last_prime = lp[a]
        cur+=1
        a //= lp[a]
        if (lp[a] == 1):
            break
    return ans * (cur + 1)
gen_primes()
a, b = map(int, input().split())
mx = 2
mx_num = 2
for i in range(a, b + 1):
    r1 = count_divisors(i)
    if r1 >= mx:
        mx_num = i
        mx = r1
print(mx_num)
Ни одна программа не проходит все тесты.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.01.2020, 08:21
Ответы с готовыми решениями:

Максимальное количество делителей
По заданным числам a и b найдите среди всех чисел отрезка такое число, которое имеет наибольшее количество делителей. Если таких чисел...

Максимальное количество делителей числа
uses crt; function KolDel(n:longint):integer;//функция для подсчета делителей var i,k:integer; begin k:=1;//пока делитель 1, само...

Максимальное количество делителей в диапазоне
Здравствуйте, нужна помощь по оптимизации программы. Вот сама программа a = int(input()) b = int(input()) c = d = for i in...

6
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
28.01.2020, 10:05
marylily, т.к. ограничения по времени нет, то:

Python
1
2
3
4
5
6
7
8
9
10
# -*- coding: utf-8 -*-
 
 
def example(start: int, end: int) -> int:
    length, maximus = 0, 0
    for i in range(start, end + 1):
        _length = len([True for j in range(1, i) if i % j == 0])
        if _length >= length and i > maximus:
            length, maximus = _length, i
    return maximus
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
28.01.2020, 20:22  [ТС]
Что то программа вообще ничего не выдает...
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.01.2020, 20:31
marylily, лайфхак - функции нужно вызывать
0
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
28.01.2020, 20:43  [ТС]
Проблема в том, что функции я еще не проходила.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
28.01.2020, 20:47
Лучший ответ Сообщение было отмечено marylily как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
12
def example(start: int, end: int) -> int:
    length, maximus = 0, 0
    for i in range(start, end + 1):
        _length = len([True for j in range(1, i) if i % j == 0])
        if _length >= length and i > maximus:
            length, maximus = _length, i
    return maximus
 
 
a = int(input('A: '))
b = int(input('B: '))
print(f'Result: {example(a, b)}')
1
0 / 0 / 0
Регистрация: 19.01.2020
Сообщений: 41
29.01.2020, 18:21  [ТС]
Спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2020, 18:21
Помогаю со студенческими работами здесь

Найти числа, имеющие максимальное количество различных делителей
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку , числа, имеющие максимальное количество различных...

Вывести количество составных чисел, у которых количество простых собственных делителей больше трех
Задача вот такая: Определите количество составных натуральных чисел из диапазона , у которых количество простых собственных делителей...

Найти номер элемента списка, имеющего максимальное количество целочисленных делителей
7. Дан список из 30 элементов, все элементы которого – положительные целые числа, не превосходящие 100. Найти номер элемента, имеющего...

Найти среди чисел то, которое имеет максимальное количество делителей и то, у которого сумма делителей максимальна
Найти среди чисел от 1 до 1000 то , которое имеет максимальное количество делителей и то , у которого сумма делителей максимальна . (...

Максимальное количество делителей
Нужно найти элемент в массиве с максимальным количеством делителей. Проблема в том, что моя программа выводит только одно такое число....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru