Изменить размерность - C#
Формулировка задачи:
Помогите с задачей. Задана матрица A (n, m). Обнулить те строки, где находится наибольшее простое число.
Есть код, нужно изменить размерность при выводе (вместо 10 цифр в числе нужно, чтобы было 2 числа)
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;
}
}
}Решение задачи: «Изменить размерность»
textual
Листинг программы
result[i, j] = generator.Next(10, 100);