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

Создайте метод нахождения количества делителей числа

21.12.2018, 22:14. Показов 2032. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создайте метод нахождения количества делителей числа. Напишите программу для нахождения числа из промежутка от А до В, у которого больше всего делителей. Указание: включите в метод операторы вывода на экран найденных делителей, иначе процесс проверки программы будет затруднителен.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2018, 22:14
Ответы с готовыми решениями:

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

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

Упростить код нахождения количества и суммы делителей заданного числа
как можно упростить етот код до уровня школьника? var n,k,s,i:word; begin read(n); k:=0;s:=0;...

Программа вычисления множества всех делителей числа 2^32+1 и вывода количества его делителей в файл
Программа вычисления множества всех делителей числа 2^32+1 и вывода количества его делителей в файл.

11
38 / 27 / 13
Регистрация: 06.11.2018
Сообщений: 141
22.12.2018, 11:19 2
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp7
{
    class NOD
    {
        private int num;
        private int Num
        {
            get
            {
                return num;
            }
            set
            {
                if (value > 1)
                    num = value;
                else
                    throw new Exception("Число не должно быть меньше 1!");
            }
        }
        private int i { get; set; }
        private int A { get; set; }
        private int B { get; set; }
        private int []mass { get; set; }
        private int lenght;
        private int k { get; set; }
        private int [] scount;
        public void Read()
        {  
            Console.Write("A - ");
            A = int.Parse(Console.ReadLine());
            Console.Write("B - ");
            B = int.Parse(Console.ReadLine());
            bool b = A < B;
            if (b == true)
                First();
            else
                Second();
        }
        public static bool operator >(NOD A, NOD B)
        {
            return A.Num > B.Num;
        }
        public static bool operator <(NOD A, NOD B)
        {
            return A.Num < B.Num;
        }
        public void Second()
        {
            lenght = A-B;
            mass = new int[lenght];
            scount = new int[lenght];
            int c = B;
            for (k = 0; k < mass.Length; k++)
            {
                mass[k] = c;
                c++;
            }
            for (i = 0; i < mass.Length; i++)
            {
                for (k = 1; k <= mass[i]; k++)
                {
                    if (mass[i] % k == 0 && k != mass[i])
                        scount[i] = k;
                }
            }
            for (i = 0; i < scount.Length; i++)
            {
                Console.Write(scount[i] + " ");
            }
            Array.Sort(scount);
            Console.WriteLine("\nMax - " + scount[lenght - 1]);
        }
        public void First()
        {
            lenght = B - A;
            mass = new int[lenght];
            scount = new int[lenght];
            int c=A;
            for (k = 0; k < mass.Length; k++)
            {
                mass[k] = c;
                c++;
            }
            for(i=0;i<mass.Length;i++)
            {    
                for (k = 1; k <= mass[i]; k++)
                {
                    if (mass[i] % k == 0 && k!=mass[i])
                        scount[i] = k;
                }    
            }
            for (i = 0; i < scount.Length; i++)
            {
                Console.Write(scount[i]+" ");
            }
            Array.Sort(scount);
            Console.WriteLine("\nMax - "+scount[lenght-1]);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            NOD n = new NOD();
            n.Read();
            Console.ReadKey();
        }
    }
}
P.S. делал в несколько подходов, так что поправьте если где то есть баги или ненужный код, насчет второго особенно,но не в том смысле чтобы кардинально изменить подход к задаче, а конкретно переделка этого, спасибо за внимание!

Добавлено через 1 минуту
так, я уже нашел кое что, конкретно-отсутствие счетчика количества делителей, сейчас что нибудь придумаем
0
Модератор
Эксперт .NET
15859 / 11006 / 2855
Регистрация: 21.04.2018
Сообщений: 32,349
Записей в блоге: 2
22.12.2018, 11:23 3
nekonihilist, может Вы код не в ту тему закинули? Он чё у Вас делает воще.. ?
0
38 / 27 / 13
Регистрация: 06.11.2018
Сообщений: 141
22.12.2018, 11:34 4
извините, но я уже не могу делать эту прогу,если кто хочет, можете дополнить проверку на нахождение номера того числа, а я пас и так часа 3 в общем просидел

Добавлено через 2 минуты
Элд Хасп, можете делать что хотите, я сейчас в состоянии овоща, после проделанной работы и мало соображаю, но код явно в той теме, если что то не так-удаляйте, не особо заденет меня это известие, еще раз извиняюсь
0
Модератор
Эксперт .NET
15859 / 11006 / 2855
Регистрация: 21.04.2018
Сообщений: 32,349
Записей в блоге: 2
22.12.2018, 11:47 5
Простая реализация
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        static List<int> Divisors(int Number)
        {
            if (Number == 0) return new List<int>() { 0 };
            if (Number < 0) Number = -Number;
            if (Number == 1) return new List<int>() { 1 };
            List<int> ret = new List<int>() { 1, Number };
 
            for (int div = 2; div < ret.Last(); div++)
                if (Number % div == 0)
                {
                    ret.Add(div);
                    int div2 = Number / div;
                    if (div2 != div)
                        ret.Add(div2);
 
                }
            ret.Sort();
            return ret;
        }
Использование
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    string inp;
    var mass = new List<int>();
    Console.Write("Enter - выход из программы\nВведите число: ");
 
    while (!string.IsNullOrWhiteSpace((inp = Console.ReadLine())))
    {
        int numb;
        if (int.TryParse(inp, out numb))
        {
            Console.Write("Делители числа {0}: ", numb);
            Console.WriteLine(string.Join(", ", Divisors(numb)));
            Console.WriteLine("Всего делителей - {0}.", Divisors(numb).Count);
            Console.WriteLine("Введите следующее число: ");
        }
        else
            Console.WriteLine("Некорректный ввод! Введите число ещё раз: ");
    }
0
97 / 98 / 58
Регистрация: 29.09.2016
Сообщений: 410
22.12.2018, 13:55 6
Только это касается натуральных чисел.
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
static void Main(string[] args)
        {
 
 
            List<int> array = new List<int> { 0,1,2,48,64 };
            List<int> dividers;
            int maxNum = 0;
            maxNum = Method(array, out dividers);
 
            Console.WriteLine("Top num : " + maxNum + " has {0} dividers", dividers.Count);
            foreach (var i in dividers)
            {
                Console.Write(" " + i);
            }
            Console.ReadLine();
 
 
 
        }
        public static int Method(List<int> array, out List<int> dividers)
        {
            dividers = new List<int>();
            int num = array.Max();
 
            if (num == 1) { dividers.Add(1); return 1; }
            if (num == 0) { dividers.Add(0);return 0; }
           
 
            num=0; int Counter = 0;int interm = 0;
            for(int i = 0; i < array.Count; i++)
            {
                for(int j = 1; j <= array[i]; j++)
                {
                    if (array[i] % j == 0)
                    {
                        Counter++;
                    }
                }
                if (Counter > interm) { interm = Counter;num = array[i]; }
                Counter = 0;
            }
 
 
            for(int i = 1; i <= num; i++)
            {
                if (num % i == 0) dividers.Add(i);
            }
 
            return num;
        }
0
Модератор
Эксперт .NET
15859 / 11006 / 2855
Регистрация: 21.04.2018
Сообщений: 32,349
Записей в блоге: 2
22.12.2018, 14:00 7
Цитата Сообщение от ahtik95 Посмотреть сообщение
Только это касается натуральных чисел.
В ТЗ есть указание о выводе найденных делителей.
0
97 / 98 / 58
Регистрация: 29.09.2016
Сообщений: 410
22.12.2018, 14:03 8
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В ТЗ есть указание о выводе найденных делителей.
ну да, также в ТЗ указано нахождение числа с максимальным количеством делителей из множества чисел.
0
Модератор
Эксперт .NET
15859 / 11006 / 2855
Регистрация: 21.04.2018
Сообщений: 32,349
Записей в блоге: 2
22.12.2018, 14:07 9
Цитата Сообщение от ahtik95 Посмотреть сообщение
ну да, также в ТЗ указано нахождение числа с максимальным количеством делителей из множества чисел.
Суть в том, что метод должен возвращать не только количество делителей, а и их список.
Как пользоваться методом я показал. И выводит делители и выводит их количество. Пробежаться циклом по диапазону, я думая, ТС сам сможет.
0
97 / 98 / 58
Регистрация: 29.09.2016
Сообщений: 410
22.12.2018, 14:09 10
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Суть в том, что метод должен возвращать не только количество делителей, а и их список.
А у меня он не возвращает список?)
0
Модератор
Эксперт .NET
15859 / 11006 / 2855
Регистрация: 21.04.2018
Сообщений: 32,349
Записей в блоге: 2
22.12.2018, 14:30 11
Цитата Сообщение от ahtik95 Посмотреть сообщение
А у меня он не возвращает список?)
Ox! Извиняюсь - не заметил out в параметрах...
0
ahtik95
22.12.2018, 14:47     Создайте метод нахождения количества делителей числа
  #12

Не по теме:


Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ox! Извиняюсь - не заметил out в параметрах...
Ничего, бывает)

0
22.12.2018, 14:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2018, 14:47
Помогаю со студенческими работами здесь

Алгоритм нахождения минимальных делителей числа
Формат входного файла В первой строке входного файла input.txt находится целое число n (1...

Алгоритм нахождения всех делителей числа
Расскажите пожалуйста как это делается словами?

Упорядочить числа от 1 до M по неубыванию количества делителей числа
Пусть для целого n&gt;0 функция d(n) равна количеству делителей числа n. Дано m&gt;0. Упорядочить все...

Составить программу нахождения всех делителей числа N
2. Составить программу нахождения всех делителей числа N. Если число N простое, то сообщить об этом.


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru