Найти в Дзене

Даны два числа A и B. Найти и сложить все красивые числа на отрезке \[A; B\]

Даны два числа A и B. Найти и сложить все красивые числа на отрезке [A; B] Красивое число - то, которое отвечает хотя бы одному из требований: static void Main(string[] args)
{
var a = int.Parse(Console.ReadLine());
var b = int.Parse(Console.ReadLine());
var multiply = 0;
for (var i = a; i <= b; i++)
{
if (IsAllemastsDigitsSame(i) || IsFourDividers(i) || IsEndNikiAtZero(i))
{
multiply += i;
}
}
Console.WriteLine(multiply);
}
static bool IsAllemastsDigitsSame(int num)
{
var digits = new HashSet<int>();
while (num > 0)
{
digits.Add(num % 10);
num /= 10;
}
return digits.Count == 1;
}
static bool IsEndNikiAtZero(int num)
{
return num % 10 == 0;
}
static bool IsFourDividers(int num)
{
var count = 0;
for (var i = 1; i <= num; i++)
{
if (num % i == 0)
{
count++;
}
}
return count == 4;
}

Даны два числа A и B. Найти и сложить все красивые числа на отрезке [A; B]

Красивое число - то, которое отвечает хотя бы одному из требований:

  1. Все цифры одинаковые
  2. Число заканчивается на 0
  3. Число делится ровно на 4 различных числа, включая 1 и само себя

static void Main(string[] args)
{
var a = int.Parse(Console.ReadLine());
var b = int.Parse(Console.ReadLine());
var multiply = 0;

for (var i = a; i <= b; i++)
{
if (IsAllemastsDigitsSame(i) || IsFourDividers(i) || IsEndNikiAtZero(i))
{
multiply += i;
}
}

Console.WriteLine(multiply);
}

static bool IsAllemastsDigitsSame(int num)
{
var digits = new HashSet<int>();

while (num > 0)
{
digits.Add(num % 10);
num /= 10;
}

return digits.Count == 1;
}

static bool IsEndNikiAtZero(int num)
{
return num % 10 == 0;
}

static bool IsFourDividers(int num)
{
var count = 0;

for (var i = 1; i <= num; i++)
{
if (num % i == 0)
{
count++;
}
}

return count == 4;
}