public static bool a(string providerId)
if (providerId.Length != 8)
if (!int.TryParse(new string(providerId.Take(6).ToArray()), out _))
var multipliers = new[] {3, 5, 8, 4, 2, 1, 6};
var plv = "0123456789ABCDEFGHJKLMNPQRTUVWXY".ToDictionary(key => key, value => cx++);
var checker = "YXWTLKJHFBA".ToDictionary(key => cx++, value => value);
var digits = providerId.Take(6).Select(x=>int.Parse($"{x}")).ToArray();
var sum = digits.Take(5).Select(x => x * multipliers[cx++]).Sum()
+ digits[5]* multipliers[cx++]
+ plv[providerId[6]] * multipliers[cx];
return checker[sum % checker.Count] == providerId[7];
public static void Main()
Console.WriteLine(b+" is "+a(b)+" provider");