using System; using System.Collections.Generic; using System.Linq; public class Program { static List Numbers = new List(); public static void Main() { Numbers.Add(1); int num0 = 0 ; Console.WriteLine(1); while (Permutation(Numbers[num0])!=0) { Numbers.Add(Permutation(Numbers[num0])); Console.WriteLine(Numbers[Numbers.Count-1]); num0++; } } static long Permutation(long num0) { List Next_Term = new List(); string Term = Convert.ToString(num0); int Y = 0; while (Term.Length>=Y) { int X = Y; string P_Term = ""; string Digits_Before = ""; string Digits_After = ""; for (int i = 0; i < X; i++) { Digits_Before = Digits_Before + Term[i]; } while(X!=Term.Length) { Digits_After = ""; for (int i = X+1; i < Term.Length; i++) { Digits_After = Digits_After + Term[i]; } P_Term = P_Term + Term[X]; if(P_Term == Convert.ToString(Convert.ToInt64(P_Term))){ if (Convert.ToInt64(P_Term)%13==0&Numbers.Contains(Convert.ToInt64( Digits_Before + Convert.ToString(Convert.ToInt64(P_Term)/13) + Digits_After))==false) { Next_Term.Add(Convert.ToInt64( Digits_Before + Convert.ToString(Convert.ToInt64(P_Term)/13) + Digits_After)); }else{ if (Numbers.Contains(Convert.ToInt64( Digits_Before + Convert.ToString(Convert.ToInt64(P_Term)*13) + Digits_After))==false) { Next_Term.Add(Convert.ToInt64( Digits_Before + Convert.ToString(Convert.ToInt64(P_Term)*13) + Digits_After)); } ; } } X++; } while (Convert.ToInt64(Term[0])==Convert.ToInt64("0")) { Y++; } Y++; } if (Next_Term.Count!=0) { return Next_Term.Min(); }else { return 0; } } }