С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 1
Регистрация: 26.10.2010
Сообщений: 25

Нужна помощь в задаче(делители чисел)

11.10.2011, 00:16. Показов 3429. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток,есть такая задача(совсем недавно начал изучать C#) так что сильно не пинайте))если какаю-то чушь напишу)

Задача:
Найти натуральное число из интервала от а до b, у которого количество делителей максимально. Если таких чисел несколько, то должно быть найдено минимальное (максимальное) из них.А и В может быть как введенно с клавиатуры так и присвоенно в коде программы,для удобства я сразу присвоил


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

вот набросок

C#
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int a = 10;
            int b = 25;
            int i=a;
            int k,c; int max = 0;
            int[] m = new int[100];
            for (i=a; i <= b;i++);   // перебор чисел от А до В
            {
                  for (k = 1; k <= i; k++) ; // находим кол-во делителей каждого числа
                  {
                      if (i % k == 0) ;
                      { m[i]++;}  // записываем кол-во делителей в массив
                  }
                if (m[i] > max);  // сравниваем элементы массива
                {max = m[i];
                 c = i;}  // записываем индекс наибольшего значения
 
            }
 
            Console.WriteLine(c);
            Console.ReadKey();
 
 
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2011, 00:16
Ответы с готовыми решениями:

Нужна помощь по задаче
Реализовать 2-х уровневый индексный файл. Обьем внешней памяти 1 мб. Последовательно выполнить следующие запросы : 1)создать файл 100...

Четные делители, нечетные делители, простые делители, составные делители, все делители
Помогите с задачей, не как не получается сделать. Создать HTML-документ p53.html, реализующий следующую задачу: Список содержит...

Сравнение чисел в ричбоксах(нужна помощь)
Есть richTextBox1 и richTextBox2 есть public void button1_Click(object sender, EventArgs e) { { ...

4
Level 2
 Аватар для FakiR
401 / 275 / 48
Регистрация: 22.11.2010
Сообщений: 785
Записей в блоге: 1
11.10.2011, 01:21
C#
1
2
3
4
5
for (k = 2; k <= i / 2; k++) ; // находим кол-во делителей каждого числа
{
     if (i % k == 0) ;
     { m[i]++;}  // записываем кол-во делителей в массив
}
Второй цикл я бы сделал так, в остальное не вникал.
0
 Аватар для TheMachinist
246 / 178 / 47
Регистрация: 14.06.2010
Сообщений: 422
11.10.2011, 01:50
Владислав94, Ты классы проходил????
Я такой же нуб как и ты, может чуть больше успел выучить.
Если что не понятно могу прокомментировать

C#
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
 
namespace test2{
    
    class Numbers{
        public int Number;
        public int Factors;
        public Numbers(int n, int f){
            Number = n;
            Factors = f;
        }
    }
    
    class Program
    {
        public static void Main(string[] args)
        {
            int A = 10, B = 100;
            int count;
            Numbers[] nums = new Numbers[100];
            int index = 0;
            
            for(int i = A; i <= B; i++){
                count = 0;
                for(int j = 2; j <= i/2; j++){
                    if(i%j == 0) count++;   
                }
                nums[index] = new Numbers(i, count);
                index++;
            }
            
            for(int i = 0; i < index; i++)
                Console.WriteLine("Число " + nums[i].Number + " делителей: " + nums[i].Factors);
            Console.WriteLine();
            
            Numbers max = new Numbers(0,0);
 
            for(int i = 0; i < index; i++){
                if(nums[i].Factors > max.Factors)  max = nums[i];
            }
            
            for(int i = 0; i < index; i++){
                if((max.Factors == nums[i].Factors) & (max.Number < nums[i].Number)){
                    max = nums[i];
                }
            }
            
        Console.WriteLine("Максимальное число " + max.Number + 
                              " с максимальным кол-вом делителей " + max.Factors);
            
            Console.ReadKey(true);
        }
    }
}
0
 Аватар для olive22
0 / 0 / 1
Регистрация: 08.05.2013
Сообщений: 4
08.05.2013, 14:29
А возможно решение этой задачи без массивов? мне сказали применить modf..вот не знаю как это сделать..
0
192 / 192 / 29
Регистрация: 03.12.2009
Сообщений: 853
08.05.2013, 15:08
Создаёшь переменную где будет максимально количество делителей и переменную с максимальным числом.
и каждый раз сравниваешь результат с этими переменными если результат больше то записываешь туда новые значения, если количество делителей равно, то сравниваешь числа, если новое больше старого, то записываешь туда новое. И никакие массивы не нужны.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2013, 15:08
Помогаю со студенческими работами здесь

нужна помощь. Сложение и вычитание больших чисел.
Доброго время суток! Нужна помощь в задаче. Звучит так: &quot; Сложение и вычитание больших чисел 2^32 и больше. Киньте примеры. Заранее...

Помощь в задаче с заменой
#include &lt;iostream.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; int main() { char stroka; int len; cin&gt;&gt;stroka; ...

Требуется помощь в простой задаче.
5. Введите номер месяца в году. Выведите на экран сообщение о времени года. Заранее спс

Помощь по задаче(структура, двойная сортировка)
В общем, парни, совсем запутался и запарился) нужна помощь по этой задаче: 11. Сформировать массив структур, каждый элемент которого...

СРОЧНО НУЖНА ПОМОЩЬ! Нужна информация о тест оборудовании
Доброго времени суток! Интересует информация (книги, статьи, научные статьи, сайты, зарубежная приветствуется) о проектировании...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru