Таблицей умножения назовем таблицу размера n строк на m столбцов, в которой на пересечении i-ой строки и j-ого столбца стоит число i · j (строки и столбцы нумеруются с единицы). В одной из математических школ было решено провести педагогический эксперимент. Для того, чтобы ученикам было проще запоминать таблицу умножения, некоторые числа в ней будут покрашены в красный, некоторые — в синий, а некоторые — в зеленый цвет (оставшиеся числа будут черными). Процесс покраски чисел можно условно разбить на четыре этапа. На первом этапе все числа красятся в черный цвет. На втором — все четные числа красятся в красный цвет, на третьем — все числа, делящиеся на 3, красятся в зеленый цвет, на четвертом — все числа, делящиеся на 5, красятся в синий цвет. Директор школы хочет знать, какое количество картриджей для принтеров необходимо закупить для печати таблиц. Поэтому ему необходима информация о том, сколько чисел какого цвета будет в одной раскрашенной таблице умножения n на m. Напишите программу, решающую задачу подсчета соответствующих количеств
Пример ввода:
10 10
Пример вывода:
RED : 21
GREEN : 39
BLUE : 36
BLACK : 4
using System;
using System.Linq;
var values = Console.ReadLine().Split();
var rows = int.Parse(values[0]);
var columns = int.Parse(values[1]);
var colors = Enum.GetValues<Color>().ToDictionary(color => color, _ => 0);
for (var y = 1; y <= rows; y++)
{
for (var x = 1; x <= columns; x++)
{
var product = y * x;
Color color = GetColor(product);
colors[color]++;
}
}
foreach (var (color, count) in colors)
{
Console.WriteLine($"{color}: {count}");
}
static Color GetColor(int product)
{
var color = Color.Black;
if (product % 2 == 0)
{
color = Color.Red;
}
if (product % 3 == 0)
{
color = Color.Green;
}
if (product % 5 == 0)
{
color = Color.Blue;
}
return color;
}
internal enum Color { Black, Red, Green, Blue }