Example #1
0
        public Decomposition GetCopy()
        {
            var result = new Decomposition(Number);

            result.KindsMasses = new List <long>(KindsMasses.GetRange(0, KindsMasses.Count));
            return(result);
        }
Example #2
0
 public void ProlongWith(long divisor, Decomposition decomposition)
 {
     if (KindsCount < 1)
     {
         throw new InvalidOperationException("cannot prolong empty decomposition");
     }
     KindsMasses[KindsCount - 1] = divisor;
     KindsMasses.AddRange(decomposition.KindsMasses);
 }
Example #3
0
        public CalculationResult ToCalculationResult()
        {
            long[] numbers = new long[KindsCount];

            for (int i = 0; i != KindsCount; ++i)
            {
                numbers[i] = KindsMasses
                             .Take(i + 1)
                             .Aggregate((total, next) => total * next);
            }

            return(new CalculationResult
            {
                KindsCount = KindsCount,
                Numbers = numbers
            });
        }