Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 4

Объясните, что в программе делается

29.03.2011, 19:14. Показов 1046. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я начинающий программист и тут нашла одну программу,которая меня очень интересует. Не могли бы вы мне объяснить, что здесь в этой программе делается? Если можно с комментариями к программе.
Задание:Найти натуральное число от 1 до n с максимальной суммой делителей.
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
              Console.WriteLine("Введите число n");
        int n = int.Parse(Console.ReadLine());
        int max = 0;
        int count = 0;
        for (int i = 1; i <= n; ++i)
        {
            int temp = 0;
            for (int j = 1; j <= n; ++j)
            {
                if (i % j == 0) ++temp;
            }
            if (temp > count)
            {
                count = temp;
                max = i;
            }
        }
        Console.WriteLine("Число с максимальной суммой делителей = {0}", max);
        Console.ReadKey();
 
    }
}
 
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2011, 19:14
Ответы с готовыми решениями:

Объясните что делается в этом методе
пожалуйста может кто объясните что делается в этом методе заранее спс) public static int...

Добавить данные в таблицу базы данных Microsoft SQL Server Compact 3.5. Объясните пожалуйста, каким образом это делается =)
Здравствуйте. Решил научиться работать с базами данных. Cоздал проект, подключил базу данных...

Объясните как это делается в EF Core
- В сущности пользователя, набор картинок должен быть приватным полем, наружу должно быть доступно...

9
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
29.03.2011, 19:24
а вы уверены, что код рабочий? по мне так он не работает....
Второй цикл как мне представляется не правильный, ну в смысле корявый. там должно быть
C#
1
for (int j = 1; j <= i; ++j)
1
185 / 188 / 17
Регистрация: 26.11.2010
Сообщений: 511
29.03.2011, 19:28
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
              Console.WriteLine("Введите число n");
        int n = int.Parse(Console.ReadLine());
        int max = 0;
        int count = 0;
        for (int i = 1; i <= n; ++i)
        {
            int temp = 0;
            for (int j = 1; j <= i; ++j)
            {
                if (i % j == 0) temp+=j;
            }
            if (temp > count)
            {
                count = temp;
                max = i;
            }
        }
        Console.WriteLine("Число с максимальной суммой делителей = {0}", max);
        Console.ReadKey();
 
    }
}
 
        }
Так получше будет. А то у Вас по количеству считает, да и лишний перебор делает
1
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
29.03.2011, 19:39
а вообще вот комментарии
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
       Console.WriteLine("Введите число n");
        int n = int.Parse(Console.ReadLine());
        int max = 0; //сюда записывается число с максимальным количеством делителей
        int count = 0;// сюда записывается максимальное количество делителей
        for (int i = 1; i <= n; ++i)  //проходим весь интервал значений числел от 1 до заданного конца 
                                            //промежутка n
        {
            int temp = 0;//сюда записывается количество делителей для текущего числа
            for (int j = 1; j <= n; ++j) //эта фигня делит текущее число, почему то вплоть до n
            {
                if (i % j == 0) ++temp;//если делится то количество делителей для данного числа 
                                               //увеличивается на единицу
            }
            if (temp > count)//если количество делителей для текущего числа больше чем найденное на тот
                                    //момент максимальное количество делителей
            {
                count = temp; //то максимальное количество делителей изменяет значение на текущее
                                    // количество делителей
                max = i;   //записывается какое именно число имеет максимальное количество делителей
            }
        }
        Console.WriteLine("Число с максимальной суммой делителей = {0}", max);
        Console.ReadKey();
Добавлено через 2 минуты
вот я что то не понимаю что вы хотели этим написать?
C#
1
temp+=j;
По мне так это тоже не верно...

Добавлено через 3 минуты
извиняюсь Killster написал все верно. Прочитал коряво, думал в задаче находится количество делителей а не их сумма
1
 Аватар для Doctor Evil
774 / 608 / 29
Регистрация: 20.03.2011
Сообщений: 621
29.03.2011, 19:41
Ну, а так как просили расписать, что делает программа, то:
Цитата Сообщение от Killster Посмотреть сообщение
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication5
{
 class Program
 {
 static void Main(string[] args)
 {
 Console.WriteLine("Введите число n"); //Вводим число с клавиатуры
 int n = int.Parse(Console.ReadLine());        //Записываем его в переменную n
 int max = 0;                                         //Объявляем переменную, в которой будет записано искомое число с максимальной суммой делителей
 int count = 0;    //переменная в которой будет храниться временное значение (во время циклов) суммы делителей чисел
 for (int i = 1; i <= n; ++i)  //начинаем перебирать все числа от 1 до введенного n
 {
int temp = 0;  //объявляем переменную для хранения суммы
 for (int j = 1; j <= i; ++j)  //перебираем значения от 1 до i
 {
 if (i % j == 0) temp+=j;  //если i делится на J без остатка, то записываем в temp j и так перебирают все j для данного i, пока j<=i
 }
 if (temp > count) //если посчитанная сумма делителей i-го числа больше, чем значение count
 {
 count = temp; // то count присваиваем значение temp
 max = i; //переменной max присваиваем число i
 }
 }
 Console.WriteLine("Число с максимальной суммой делителей = {0}", max); //выводим на экран
 Console.ReadKey();
}
}
}
1
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 4
29.03.2011, 19:47  [ТС]
а зачем тут вообще temp и count?
0
185 / 188 / 17
Регистрация: 26.11.2010
Сообщений: 511
29.03.2011, 19:49
Цитата Сообщение от Пусь Посмотреть сообщение
а зачем тут вообще temp и count?
В temp-е мы суммируем все делители числа.
count - максимальное найденное
1
 Аватар для Doctor Evil
774 / 608 / 29
Регистрация: 20.03.2011
Сообщений: 621
29.03.2011, 19:49
Для временного хранения значений
1
0 / 0 / 0
Регистрация: 29.03.2011
Сообщений: 4
29.03.2011, 20:02  [ТС]
А не могли бы вы мне написать к этой программе комментарии?
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            Random random = new Random();
            int size = random.Next(10, 20);
            int[] arr = new int[size];
            for (int i = 0; i < size; i++)
            {
                arr[i] = random.Next(0, 9);
                Console.Write(arr[i] + " ");
            }
            Console.WriteLine();
            int a = random.Next(0, size);
            int b = random.Next(0, size);
            if (a > b)
            {
                int tmp = a;
                a = b;
                b = tmp;
            }
            int sum = 0;
 
            for (int i = 0; i < a; i++)
                sum += arr[i];
            for (int i = b+1; i < size; i++)
                sum += arr[i];
            Console.WriteLine("A: " + a);
            Console.WriteLine("B: " + b);
            Console.WriteLine("Сумма: " + sum);
            Console.ReadKey(true);
        }
    }
}
Добавлено через 1 минуту
Я в принципи поняла что к чему,но мне бы хотелось по точнее
0
185 / 188 / 17
Регистрация: 26.11.2010
Сообщений: 511
29.03.2011, 20:08
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            Random random = new Random(); //создаем объект класса Random
            int size = random.Next(10, 20); //Создаем переменную, хранящую в себе значение размера массива
            int[] arr = new int[size]; //Создаем массив
            for (int i = 0; i < size; i++) 
            {
                arr[i] = random.Next(0, 9); //Заполняем массив случайными числами
                Console.Write(arr[i] + " "); //Параллельно выводя их на экран
            } 
            Console.WriteLine();
            int a = random.Next(0, size); //Создаем две переменных со значениями в виде двух случ. чисел
            int b = random.Next(0, size);
            if (a > b) //Первое должно быть меньшим
            {
                int tmp = a;
                a = b;
                b = tmp;
            }
            int sum = 0;
 
            for (int i = 0; i < a; i++) //Суммируем все элементы от первого да a
                sum += arr[i];
            for (int i = b+1; i < size; i++) //И от b+1 до последнего
                sum += arr[i];
            Console.WriteLine("A: " + a);
            Console.WriteLine("B: " + b);
            Console.WriteLine("Сумма: " + sum);
            Console.ReadKey(true);
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.03.2011, 20:08
Помогаю со студенческими работами здесь

Что делается в этом коде программы?
Дайте содержательное определение операциям с последовательностью, стеком и очередью void F3()...

Что можно спросить на защите диплома, в котором делается сайт?
Подскажите из собственного опыта или опыта знакомых.

Каждые n секунд что-то делается
Как сделать так, чтобы каждые n секунд что-то будет выполняться?

Можете пожалуйста объяснить что делается в этой строке
string pattern = @&quot;\b(((||1{2}|2|25)(\.)){3}(||1{2}|2|25))\b&quot;;

Скриншот делается, но с багами. Картинка в теме.
Вот код, можете вставить его куда угодно и протестировать, скриншот появится на рабочем столе. Кто...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru