Я пытаюсь создать простую программу, которая запрашивает целое число и, если это целое число является простым числом, выводит свои коэффициенты.Если ввод пользователя не является основным фактором, он просит пользователя ввести главный фактор.Проблема в том, что если я дважды введу действительный простой множитель подряд, это не даст мне правильного результата.Я работал над этим некоторое время, и я думаю, что должно быть что-то очевидное, что я скучаю, потому что я не могу понять это.
class Program
{
static void Main(string[] args)
{
List<int> factors = new List<int>();
int a, b, c;
Console.Write("Hello,\n Please enter an integer: ");
string userInput = Console.ReadLine();
while (userInput != "quit")
{
try
{
a = int.Parse(userInput);
c = a;
bool negative = a < 0;
int letter = Convert.ToInt32(Int32.TryParse(userInput, out letter));
if (!negative && letter != 0)
{
for (b = 2; a > 1;)
if (a % b == 0)
{
while (c % b == 0)
{
c /= b;
factors.Add(c);
}
Console.WriteLine($"{a} has factors: { String.Join(", ", factors)}");
Console.Write("Please enter another integer: ");
factors.Clear();
userInput = Console.ReadLine();
a = int.Parse(userInput);
}
}
else
{
Console.Write("Please enter a valid prime factor: ");
userInput = Console.ReadLine();
}
}
catch
{
Console.Write("Please enter a valid prime factor: ");
userInput = Console.ReadLine();
}
}
}
}
Здравствуйте, пожалуйста, введите целое число: 64 ...
64 имеет множители: 32, 16, 8, 4, 2, 1 Пожалуйста, введите другое целое число: y ...
Пожалуйста, введите действительный простой множитель:
сейчас, если я сделаю два действительных простых множителя подряд
Здравствуйте, Пожалуйста, введите целое число: 64 ...
64 имеет множители: 32,16, 8, 4, 2, 1 Пожалуйста, введите другое целое число: 8 ...
8 имеет факторы: Пожалуйста, введите другое целое число:
однако ....
Здравствуйте, пожалуйставведите целое число: 64 ...
64 имеет множители: 32, 16, 8, 4, 2, 1 Пожалуйста, введите другое целое число: y ...
Пожалуйста, введите действительное простое число: 8 8 имеет множители:4, 2, 1 Пожалуйста, введите другое целое число: