Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Validate or get the check digit of a segment of a Windows 8 / 10 activation installation ID
// Validate or get the check digit of a segment of a Windows 8 / 10 activation installation ID using System; using System.Text.RegularExpressions; namespace Rextester { public class Program { public static void Main(string[] args) { string idSegment = Console.ReadLine(); if (!Regex.IsMatch(idSegment, "^[0-9]+$")) { Console.Error.WriteLine("The ID segment should contain digits only"); return; } if (idSegment.Length == 7) { int[] intIdSegment = new int[7]; for (int i = 0; i < idSegment.Length; i++) { intIdSegment[i] = int.Parse(new string(idSegment[i], 1)); } if (intIdSegment[6] < 7 && (intIdSegment[0] + 2 * intIdSegment[1] + intIdSegment[2] + 2 * intIdSegment[3] + intIdSegment[4] + 2 * intIdSegment[5] - intIdSegment[6]) % 7 == 0) { Console.WriteLine("The ID segment is valid"); } else { Console.WriteLine("The ID segment is invalid"); } } else if (idSegment.Length == 6) { int[] intIdSegment = new int[6]; for (int i = 0; i < idSegment.Length; i++) { intIdSegment[i] = int.Parse(new string(idSegment[i], 1)); } int checkDigit = (intIdSegment[0] + 2 * intIdSegment[1] + intIdSegment[2] + 2 * intIdSegment[3] + intIdSegment[4] + 2 * intIdSegment[5]) % 7; Console.WriteLine("The check digit is " + checkDigit.ToString()); Console.WriteLine("The full ID segment is " + idSegment + checkDigit.ToString()); } else { Console.Error.WriteLine("Enter 6 digits to get the check digit, or enter 7 digits to validate the ID segment"); } } } }
run
|
edit
|
history
|
help
1
ConcurrentStack<T>
RankingNumeric
Fibonacci Numbers
IComparable extensions: Between
saxasd
factorial ncr + unique list
Unicode Braille Patterns.
h
never use floats for money
C# program to Determine if Two Words Are Anagrams of Each Other