Обнулить те строки в двумерном массиве, где находится наибольшее простое число. - C#

Узнай цену своей работы

Формулировка задачи:

Решить задачу Задана матрица A(n,m). Обнулить те строки, где находится наибольшее простое число. Вывести сообщение, если простых чисел нет.

Решение задачи: «Обнулить те строки в двумерном массиве, где находится наибольшее простое число.»

textual
Листинг программы
  1. using System;
  2. using System.Text;
  3. namespace ConsoleApplication5
  4. {
  5.     class Program
  6.     {
  7.         static void Main()
  8.         {
  9.             Console.Write("N=");
  10.             var n = Convert.ToInt32(Console.ReadLine());
  11.             Console.Write("M=");
  12.             var m = Convert.ToInt32(Console.ReadLine());
  13.             var array = RandomMatrix(n, m);
  14.             DisplayMatrix(array);
  15.             for (var i = 0; i < n; ++i)
  16.                 if (CheckRow(array, i))
  17.                     ZeroRow(array, i);
  18.             Console.WriteLine("===================");
  19.             DisplayMatrix(array);
  20.             Console.ReadKey();
  21.         }
  22.         public static int[,] RandomMatrix(int n, int m)
  23.         {
  24.             var result = new int[n, m];
  25.             var generator = new Random();
  26.             for (var i = 0; i < n; i++)
  27.                 for (var j = 0; j < m; j++)
  28.                     result[i, j] = generator.Next();
  29.             return result;
  30.         }
  31.         static bool CheckRow(int[,] matrix, int rowIndex)
  32.         {
  33.             var isPrime = false;
  34.             for (int j = 0, m = matrix.GetLength(1); j < m; ++j)
  35.                 if (PrimeTools.IsPrime(Math.Abs(matrix[rowIndex, j])))
  36.                 {
  37.                     isPrime = true;
  38.                     break;
  39.                 }
  40.             return isPrime;
  41.         }
  42.         static void ZeroRow(int[,] matrix, int rowIndex)
  43.         {
  44.             for (int j = 0, m = matrix.GetLength(1); j < m; ++j)
  45.                 matrix[rowIndex, j] = 0;
  46.         }
  47.         public static void DisplayMatrix(int[,] matrix)
  48.         {
  49.             var builder = new StringBuilder();
  50.             for (var i = 0; i < matrix.GetLength(0); ++i)
  51.             {
  52.                 for (var j = 0; j < matrix.GetLength(1); ++j)
  53.                 {
  54.                     if (j > 0)
  55.                         builder.Append(' ');
  56.                     builder.Append(matrix[i, j]);
  57.                 }
  58.                 builder.AppendLine();
  59.             }
  60.             Console.Write(builder.ToString());
  61.         }
  62.     }
  63.     static class PrimeTools
  64.     {
  65.         public static bool IsPrime(int n)
  66.         {
  67.             if ((n & 1) == 0)
  68.                 return n == 2;
  69.             for (var i = 3; i * i <= n; i += 2)
  70.                 if ((n % i) == 0)
  71.                     return false;
  72.             return n != 1;
  73.         }
  74.     }
  75. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы