1. Для наглядности построй в столбик значения двойки в степенях от 0 до 7. Это будет 1, 2, 4, 8, 16, 32, 64, 128.
2. Разложи число (Внимание! Обязательно только из десятичной системы счисления) на числа из построенного ранее столбика.
К примеру возьмем число 37. 37=32+4+1.
2. Отсчитывай от числа из столбика 128 до 1. Если в разложении имеется это число, то пиши 1. Иначе 0.
0(128 нету) 0(64 нету) 1(32 есть!) 0(16 нету) 0 1 0 1
Цифр должно получиться восемь. Лучше пересчитать на случай, если случайно забыл ряд.
То есть по этому алгоритму
.
И, конечно же, пробуй переводить числа самостоятельно. Сухая теория тут не имеет места.
using System;
namespace ConsoleApp4
{
class Program
{
static void PrintDivisors(int a)
{
Console.Write("делители для числа " + a.ToString() + "(исключая само число и 1): ");
for (int i = 2; i <a; i++)
if (a % i == 0)
Console.Write(i.ToString() + " ");
Console.WriteLine("");
}
static void Main(string[] args)
{
Console.WriteLine("Введите m и n");
int m, n;
m = int.Parse(Console.ReadLine());
n = int.Parse(Console.ReadLine());
if (n < m)
Console.WriteLine("Неверный ввод");
else
for(int i=m;i<=n;i++)
PrintDivisors(i);
Console.ReadKey();
}
}
}