Математика и программирование тесно связаны - мало кто будет оспаривать данный факт. В основе программирования естественным образом заложены математические законы. Программирование - это способ реализации математики, причем главный, приоритетный способ для ЭВМ.
С помощью программирования можно перевести рутинный процесс ручной обработки чисел в быструю и понятную программу. Тем более что зачастую необходимо без особых вычислений, особенно связных с перебором промежуточных значений, получить соответствующий результат. Рассмотрим указанное на примере решения задачи дискретной математики на теорию чисел. Симбиоз программирования и математики ярко проявляется во время анализа программы определения является ли введённое число простым или составным. Часто необходимо практически сразу узнать - простое или составное число, если, конечно, это не связано с изучением самого алгоритма получения ответа на поставленный вопрос с точки зрения математики или программирования.
Принцип работы программы предельно прост.
Для начала, пользователю необходимо ввести любое целое число с целью проверки является ли оно простым или составным.
Помимо введенного числа в программе уже задано несколько переменных, а именно делитель k=1, счетчик k1=0.
Для проверки числа формируется цикл с предусловием «пока делитель k меньше либо равен введенному числу n».
В цикле проверяется условие: «если остаток от деления введенного числа n на k равен 0, то счетчик k1 увеличивается на единицу» - найден делитель, т.е. возможно, что число составное. Так же на единицу увеличивается и делитель k.
Таким образом последовательно перебираются все числа, меньшие заданного.
Если после выхода из цикла счетчик k1=2, значит у числа всего 2 делителя: единица и само число. Следовательно, это число является простым, соответствующее сообщение программа выведет на экран.
Если же после выхода из цикла значение счетчика окажется больше 2, программа выведет сообщение о том, что число является составным. Для проверки правильности работы программы и для удобства пользователя при условии, что число не является простым, программа предусматривает вывод всех делителей. Выполняется это следующим образом.
Снова формируется цикл с предусловием, такой же, что и вначале программы, внутри которого еще один цикл проверки остатка от деления введенного числа на делитель k (в случае, если число составное k снова присваивается значение единицы).
Внутри вложенного цикла формируется массив, размерность которого задается количеством найденных делителей числа, и заполняется значениями этих делителей.
Массив выводится на экран вместе с сообщением о том, что число является составным.
Результат работы программы можно увидеть на скриншотах (рисунки 1 и 2).
Рисунок 1 - Введено составное число, определён список делителей.
Рисунок 2 - Введено простое число.
Код программы:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите число для проверки: ");
int n = int.Parse(Console.ReadLine());
int k = 1;
int k1=0;
while (k <= n)
{
if (n % k == 0) k1++;
k++;
}
if (k1 == 2) Console.WriteLine("Число простое");
else
{
Console.WriteLine("Число составное");
Console.Write("Список делителей: ");
int[] mas = new int[k1];
k = 1;
k1 = 0;
while(k<=n)
{
if (n%k==0)
{
mas [k1]= k;
k1++;
}
k++;
}
for (int i = 0; i < k1; i++)
Console.Write("{0}; ", mas[i]);
}
Console.ReadLine();
Console.ReadKey();
}
}
Данная программа может быть использована как учебное пособие по математике, а так же по программированию. Программа может быть модифицирована - необязательно проверять весь диапазон от 1 до самого числа - достаточно до целой части от половины введённого значения, можно сразу же исключить деление проверяемого числа на чётные делители и т.д. Включение программы в перечень программных средств информационной образовательной среды кафедры позволит обучающимся оценить программу, предложить своё видение модификации её. Итогом такой работы будет включение всех желающих в студенческую научную исследовательскую работу.