using System.Collections.Generic;
public List<Node> Children{get; set;} = new List<Node>();
public long Id{get; set;}
for(long i = 1; i <= Id; i++)
factorialValue = factorialValue * i;
public long PrintFactorialSum()
long childFactorialSum = 0;
for(int i = 0; i < Children.Count; i++)
childFactorialSum = childFactorialSum + Children[i].PrintFactorialSum();
return (childFactorialSum + Factorial());
public static void Main()
Children = {Node_11, Node_10}
Children = {Node_8, Node_7}
Children = {Node_3, Node_2}
Children = {Node_5, Node_4}
Children = {Node_12, Node_9, Node_6}
Console.WriteLine("Node 2: " + Node_2.PrintFactorialSum());
Console.WriteLine("Node 3: " + Node_3.PrintFactorialSum());
Console.WriteLine("Node 4: " + Node_4.PrintFactorialSum());
Console.WriteLine("Node 5: " + Node_5.PrintFactorialSum());
Console.WriteLine("Node 6: " + Node_6.PrintFactorialSum());
Console.WriteLine("Node 7: " + Node_7.PrintFactorialSum());
Console.WriteLine("Node 8: " + Node_8.PrintFactorialSum());
Console.WriteLine("Node 9: " + Node_9.PrintFactorialSum());
Console.WriteLine("Node 10: " + Node_10.PrintFactorialSum());
Console.WriteLine("Node 11: " + Node_11.PrintFactorialSum());
Console.WriteLine("Node 12: " + Node_12.PrintFactorialSum());
Console.WriteLine("Node 13: " + Node_13.PrintFactorialSum());