Пример #1
0
        public List <PairOfSquares> FindSquaresWhereDifferenceIs(int n)
        {
            var pairsOfSquares = new List <PairOfSquares> {
            };
            var factors        = factorization.GetFactors(n);
            var factorsThatAreValidForDifferenceBetweenSquares = factors.Where(f => f.LargerFactor % 2 == f.SmallerFactor % 2);

            return(factorsThatAreValidForDifferenceBetweenSquares.Select(f => this.GetPairOfSquaresWithCriteria(f.LargerFactor, f.SmallerFactor)).ToList());
        }
Пример #2
0
        public void TestGetFactors(int n)
        {
            var factorization   = new Factorization();
            var factors         = factorization.GetFactors(n).OrderBy(n => n.SmallerFactor).ToArray();
            var expectedFactors = expectedFactorPairs[n].OrderBy(n => n.SmallerFactor).ToArray();

            Assert.AreEqual(expectedFactors.Length, factors.Length);
            for (int i = 0; i < factors.Length; i++)
            {
                Assert.AreEqual(expectedFactors[i].SmallerFactor, factors[i].SmallerFactor);
                Assert.AreEqual(expectedFactors[i].LargerFactor, factors[i].LargerFactor);
            }
        }