public class AustriaSocialSecurityNumber
public static void Main()
bool isValid = isValidASSN("1237010180");
Console.WriteLine(isValid);
private static bool authenticateFirstDigits(int fdigit)
if (fdigit >= 100) return true;
private static int getReminder(string assn)
int[] multiply = {3, 7, 9, 5, 8, 4, 2, 1, 6};
for (int i=0;i<assn.Length;i++)
addition += (Convert.ToInt32(assn[i]) - 48) * multiply[i];
int answer = addition % 11;
private static bool isValidASSN(string assn)
if (assn.Length != 10) return false;
foreach (char ch in assn)
if (char.IsLetter(ch)) return false;
int firstdigits = Convert.ToInt32(assn.Substring(0,3));
if (!authenticateFirstDigits(firstdigits)) return false;
int wholestring_check = Convert.ToInt32(assn[3]) - 48;
string wholestring = assn.Remove(3,1);
int wholestring_reminder = getReminder(wholestring);
if (wholestring_reminder != wholestring_check) return false;