Пример #1
0
 /// <summary>
 /// Creates a new Factor node
 /// </summary>
 /// <param name="value">The number value</param>
 public PrimeFactorNode(long value, long defaultFactor = 2)
 {
     this.Parent   = null;
     this.Value    = value;
     this.Children = new PrimeFactorNode[0];
     this.Add(defaultFactor, value);
 }
Пример #2
0
 /// <summary>
 /// Adds a new value to the node
 /// </summary>
 /// <param name="lastFactor">The last used factor</param>
 /// <param name="value">The value to test</param>
 private void Add(long lastFactor, long value)
 {
     if (lastFactor == value)
     {
         return;
     }
     else if (value % lastFactor == 0)
     {
         PrimeFactorNode n1 = new PrimeFactorNode(lastFactor, lastFactor);
         PrimeFactorNode n2 = new PrimeFactorNode((long)(value / lastFactor), lastFactor);
         n1.Parent     = this;
         n2.Parent     = this;
         this.Children = new PrimeFactorNode[] { n1, n2 };
     }
     else
     {
         this.Add(lastFactor + 1, value);
     }
 }