public void GetMaxCommonDividerTest() { var message = "INPUT = {0} RESULT = {1}"; foreach (var item in _MaxComDividers) { var input = string.Join(", ", item.Key); var result = KataBase.GetMaxCommonDivider(item.Key[0], item.Key[1]); Assert.True(result == item.Value, string.Format(message, input, result)); } }
#pragma warning disable CA1814 // Используйте массивы массивов вместо многомерных массивов public static string SumFracts(int[,] args) { if (args is null) { throw new ArgumentNullException(nameof(args)); } if (args.Length == 0) { return(null); } var zeroLength = args.GetLength(0); var tArray = new int[zeroLength, 2]; Array.Copy(args, tArray, args.Length); for (var i = 0; i < zeroLength; i++) { var mD = (int)KataBase.GetMaxCommonDivider(tArray[i, 0], tArray[i, 1]); tArray[i, 0] /= mD; tArray[i, 1] /= mD; } var nmr = 0; var dnmr = 1; for (var i = 0; i < zeroLength; i++) { dnmr *= tArray[i, 1]; } for (var i = 0; i < zeroLength; i++) { var multiplier = dnmr / tArray[i, 1]; tArray[i, 0] *= multiplier; nmr += tArray[i, 0]; } if (nmr % dnmr == 0) { return($"{nmr / dnmr}"); } var maxDvdr = KataBase.GetMaxCommonDivider(nmr, dnmr); return($"[{nmr / maxDvdr}, {dnmr / maxDvdr}]"); #pragma warning restore CA1814 // Используйте массивы массивов вместо многомерных массивов }
/// <summary> /// Возвращает пары число — сумма квадратов из чисел между введёнными, /// у которых сумма квадратов делителей сама является квадратом. /// </summary> /// <param name="m">Первое число диапазона.</param> /// <param name="n">Второе число диапазона.</param> /// <returns>Пары число — сумма квадратов. Сортировка по возрастанию.</returns> private static List <long[]> SquaredList(long m, long n) { var bigFirst = (m > n) ? true : false; var big = bigFirst ? m : n; var small = bigFirst ? n : m; var numbers = new List <long[]>(); for (var i = small; i <= big; i++) { List <long> dividers = KataBase.GetDividers(i); IEnumerable <long> divSquared = dividers.Select(d => d * d); var sumSquared = divSquared.Sum(); var isSq = KataBase.IsIntegerSquared(sumSquared); if (isSq) { long[] c = { i, sumSquared }; numbers.Add(c); } } return(numbers); }
public void SimpeDividersTest() { var result = KataBase.SimpeDividers(24); Assert.True(false, "RESULT = " + result); }