Обнулить те строки в двумерном массиве, где находится наибольшее простое число. - C#
Формулировка задачи:
Решить задачу
Задана матрица A(n,m). Обнулить те строки, где находится наибольшее простое число. Вывести сообщение, если простых чисел нет.
Решение задачи: «Обнулить те строки в двумерном массиве, где находится наибольшее простое число.»
textual
Листинг программы
- using System;
- using System.Text;
- namespace ConsoleApplication5
- {
- class Program
- {
- static void Main()
- {
- Console.Write("N=");
- var n = Convert.ToInt32(Console.ReadLine());
- Console.Write("M=");
- var m = Convert.ToInt32(Console.ReadLine());
- var array = RandomMatrix(n, m);
- DisplayMatrix(array);
- for (var i = 0; i < n; ++i)
- if (CheckRow(array, i))
- ZeroRow(array, i);
- Console.WriteLine("===================");
- DisplayMatrix(array);
- Console.ReadKey();
- }
- public static int[,] RandomMatrix(int n, int m)
- {
- var result = new int[n, m];
- var generator = new Random();
- for (var i = 0; i < n; i++)
- for (var j = 0; j < m; j++)
- result[i, j] = generator.Next();
- return result;
- }
- static bool CheckRow(int[,] matrix, int rowIndex)
- {
- var isPrime = false;
- for (int j = 0, m = matrix.GetLength(1); j < m; ++j)
- if (PrimeTools.IsPrime(Math.Abs(matrix[rowIndex, j])))
- {
- isPrime = true;
- break;
- }
- return isPrime;
- }
- static void ZeroRow(int[,] matrix, int rowIndex)
- {
- for (int j = 0, m = matrix.GetLength(1); j < m; ++j)
- matrix[rowIndex, j] = 0;
- }
- public static void DisplayMatrix(int[,] matrix)
- {
- var builder = new StringBuilder();
- for (var i = 0; i < matrix.GetLength(0); ++i)
- {
- for (var j = 0; j < matrix.GetLength(1); ++j)
- {
- if (j > 0)
- builder.Append(' ');
- builder.Append(matrix[i, j]);
- }
- builder.AppendLine();
- }
- Console.Write(builder.ToString());
- }
- }
- static class PrimeTools
- {
- public static bool IsPrime(int n)
- {
- if ((n & 1) == 0)
- return n == 2;
- for (var i = 3; i * i <= n; i += 2)
- if ((n % i) == 0)
- return false;
- return n != 1;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д