C#

[c#] как найти все простые делители числа, ответ в массиве int

Asdadsdsa
using System;
using System.Collections.Generic;
namespace Answer {
class Program {
static void Main(){
Console.Write("Введите число: ");
var number = uint.Parse(Console.ReadLine());
var box = FindingPrimeDivisors(number);
foreach (var x in box) Console.Write($"{x} ");
Console.WriteLine();
Console.ReadKey();
}
static bool IsPrime(uint x) {
bool p;
if (x <= 5U && (x <= 2U || x == 3U || x == 5U)) p = true;
else if (0U == x % 2U || 0U == x % 3U || 0U == x % 5U) p = false;
else {
uint n;
for (n = 3U; n * n <= x && 0U != x % n; n += 2U) { ; }
p = n * n > x;
}
return p;
}
static bool IsDivider(uint x, uint y) {
return 0U == x % y;
}
static uint[] FindingPrimeDivisors(uint x) {
var box = new List<uint>();
while (IsDivider(x, 2U)) {
box.Add(2U);
x /= 2U;
}
var n = 3U;
while (!IsPrime(x)){
while (IsDivider(x, n)) {
box.Add(n);
x /= n;
}
n += 2U;
while (!IsPrime(n)) n += 2U;
}
box.Add(x);
return box.ToArray();
}
}
}
Руслан Сманалиев
Руслан Сманалиев
98 043
Лучший ответ
Разложение на простые множители. Ну как бэ гоняете цикл от 2 до n/2 и проверяете, являются ли числа в этом промежутке простыми и еще делителями n. Если да, то добавляете динамически.
Dionisiy Сергеев
Dionisiy Сергеев
8 924
Самат Жумалиев напиши код!