using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Text.RegularExpressions; namespace Lizenztest_1_auswerten { class Program { static void Main(string[] args) { string key = Console.ReadLine(); int string_lenght = key.Length; if(string_lenght == 14) { string pattern = @"^[0-9]{4}-[0-9]{4}-[0-9]{4}$"; if (Regex.IsMatch(key, pattern, RegexOptions.IgnoreCase)) { bool flag = false; string[] keys = key.Split('-'); int r1 = Convert.ToInt32(keys[0]); string string_r1 = r1.ToString(); int quersumme_r1 = 0; List tempList = new List(); foreach (char c in string_r1) { tempList.Add(Convert.ToInt32(c.ToString())); } foreach (int i in tempList) { quersumme_r1 = quersumme_r1 + i; } String string_quersumme_r1 = quersumme_r1.ToString(); if (string_quersumme_r1.Length == 1) { if(keys[1].Substring(0,1) == string_quersumme_r1) { int r3 = r1 + quersumme_r1; string string_r3 = r3.ToString(); int quersumme_r3 = 0; List tempList_r3 = new List(); foreach (char c in string_r3) { tempList_r3.Add(Convert.ToInt32(c.ToString())); } foreach (int i in tempList_r3) { quersumme_r3 = quersumme_r3 + i; } String string_quersumme_r3 = quersumme_r3.ToString(); if (string_quersumme_r3.Length == 1) { if (keys[2].Substring(0, 1) == string_quersumme_r3) { flag = true; } } else if (string_quersumme_r3.Length == 2) { if (keys[2].Substring(0, 2) == string_quersumme_r3) { flag = true; } } } } else if (string_quersumme_r1.Length == 2) { if (keys[1].Substring(0, 2) == string_quersumme_r1) { int r3 = r1 + quersumme_r1; string string_r3 = r3.ToString(); int quersumme_r3 = 0; List tempList_r3 = new List(); foreach (char c in string_r3) { tempList_r3.Add(Convert.ToInt32(c.ToString())); } foreach (int i in tempList_r3) { quersumme_r3 = quersumme_r3 + i; } String string_quersumme_r3 = quersumme_r3.ToString(); if (string_quersumme_r3.Length == 1) { if (keys[2].Substring(0, 1) == string_quersumme_r3) { flag = true; } } else if (string_quersumme_r3.Length == 2) { if (keys[2].Substring(0, 2) == string_quersumme_r3) { flag = true; } } } } if(flag) { Console.WriteLine("Der Schlüssel ist gültig!"); } else { Console.WriteLine("Der Schlüssel entspricht nicht dem vorgegebenen Algorithmus!"); } } else { Console.WriteLine("Der Schlüssel entspricht nicht dem vorgegebenen Muster!"); } } else { Console.WriteLine("Die Schlüssellänge ist ungültig!"); } } } }