Обнулить те строки в двумерном массиве, где находится наибольшее простое число. - 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;
        }
    }
}

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


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

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

13   голосов , оценка 3.846 из 5
Похожие ответы