using System.Collections.Generic;
public static void Main()
Tuple<long, int>[] exemplos = new []
new Tuple<long, int>(1234, 0),
new Tuple<long, int>(1234, 2),
new Tuple<long, int>(1234, 3),
new Tuple<long, int>(123456789, 2),
new Tuple<long, int>(123456789, 6),
new Tuple<long, int>(123456789, 1),
new Tuple<long, int>(long.MaxValue, 3),
new Tuple<long, int>(int.MaxValue, 2),
new Tuple<long, int>(int.MinValue, 2),
foreach(var exemplo in exemplos)
Console.WriteLine("// {0} (tamanho agrupamento {1}) => {2}",
string.Join(" ", DividirNumero(exemplo.Item1, exemplo.Item2)));
private static long[] DividirNumero(long valor, int tamanhoGrupo)
int localTamanhoGrupo = (int) Math.Pow(10, tamanhoGrupo);
Stack<long> resultado = new Stack<long>();
resultado.Push(valor % localTamanhoGrupo);
valor /= localTamanhoGrupo;
return resultado.ToArray();