Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 483

/ вопрос решён /

Здравствуйте, эксперты!
возник такой вопрос: нужно найти число, находящееся на отрезке [ a, b ], имеющее наибольшее количество делителей? Помогите ПОЖАЛУЙСТА!!!!

I{ () T Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: I{ () T (статус: Посетитель)
Вопрос отправлен: 4 марта 2009, 18:09
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, I{ () T!
Делители искать просто. Где тот так

function HowManyDiv(n:integer):integer;
var i,k:integer;
begin
  k := 0;
  for i := 2 to n div 2 do
    if n mod i = 0 then k:= k+1;
  result := k;
end;

а теперь поиск максимума
maxn =a;
maxk = HowManyDiv(maxn);
for i:=a+1 to b do
  begin
    k := HowManyDiv(i);
    if k>maxk then begin
      maxk := k;
      maxn := i;
    end;
  end;
//вывод maxn - собственно числа и maxk - его кол-ва делителей
Думаю, что если надо будет сделать вывод самих делителей, то это будет не сложно:)

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 4 марта 2009, 19:30
Оценка за ответ: 5

Комментарий к оценке: ВЫРУЧИЛИ!!! ОГРОМНОЕ СПАСИБО!! действительно легко оказалось. а я вообще через цикл делал. и запутался вконец. ЕЩЕ РАЗ СПАСИБО!

Ответ #2. Отвечает эксперт: min@y™

Цитата:

нужно найти число, находящееся на отрезке [ a, b ], имеющее наибольшее количество делителей


Не всё так просто. На отрезке [ a, b ] чисел с максимальным кол-вом делителей может быть больше одного! Например, на отрезке [2, 100] их аж 5 штук: 60, 72, 84, 90, 96 (у всех кол-во делителей = 12). Я написал демо-программку, которая находит и выводит такие числа. Вот результат её работы, скопированный из консоли:
 --- Values with max count of dividers (total: 5) ---
 
Dividers of "60" (total: 12):
1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60
 
Dividers of "72" (total: 12):
1, 2, 3, 4, 6, 8, 9, 12, 18, 24, 36, 72
 
Dividers of "84" (total: 12):
1, 2, 3, 4, 6, 7, 12, 14, 21, 28, 42, 84
 
Dividers of "90" (total: 12):
1, 2, 3, 5, 6, 9, 10, 15, 18, 30, 45, 90
 
Dividers of "96" (total: 12):
1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 96

Саму программу прицепляю к ответу.
К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 4 марта 2009, 20:23
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 21; последнее сообщение — 7 марта 2009, 11:34; участников в обсуждении: 4.

Страницы: [« Предыдущая] [1] [2]

DNK

DNK (статус: Студент), 7 марта 2009, 11:34 [#21]:

Другое дело. Только ещё переменную Index надо прописать.
"Digital Networked Knight"

31 января 2011, 19:36: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Страницы: [« Предыдущая] [1] [2]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 апреля 2026, 20:59
Выполнено за 0.03 сек.