این هم یه امتحانی بکن ضرر نداره

public static Boolean checkLegalNationalCode(String nationalCode)
{

if (nationalCode.Length < 11 || int.Parse(nationalCode) == 0)
return false;

if (int.Parse(nationalCode.Substring(3, 9)) == 0)
return false;

int c = int.Parse(nationalCode.Substring(10, 11));
int d = int.Parse(nationalCode.Substring(9, 10)) + 2;
int[] z = new int[] { 29, 27, 23, 19, 17 };
int s = 0;

for (byte i = 0; i < 10; i++)
s += (d + int.Parse(nationalCode.Substring(i, i + 1))) * z[i % 5];

s = s % 11;

if (s == 10)
s = 0;

return (c == s);
}