REGON
7 digit REGON
First six digits have weights:
weights: 2 3 4 5 6 7
digits: d1 d2 d3 d4 d5 d6
Here is algorithm for finding d7:
sum = 2*d1+3*d2+4*d3+5*d4+6*d5+7*d6
d7 = sum mod 11
9 digit REGON
First eight digits have weights:
weights: 8 9 2 3 4 5 6 7
digits: d1 d2 d3 d4 d5 d6 d7 d8
Here is algorithm for finding d9:
sum = 8*d1+9*d2+2*d3+3*d4+4*d5+5*d6+6*d7+7*d8
d9 = sum mod 11
PHP code:
$number = strlen($reg);
if(!(($number==9)||($number==7))) {
print "Incorrect REGON!<BR>";
return 1;
}
if(==7) {
for($i = 0; $i<7; $i++)
{
if(!($reg[$i]>='0' && $reg[$i]<='9')) {
print "Incorrect REGON7! (DIGIT)<BR>"
return 1;
}
$arr[$i] = $reg[$i]-'0';
}
$sum = $arr[0]*2+$arr[1]*3+$arr[2]*4+$arr[3]*5+$arr[4]*6+$arr[5]*7;
$sum %= 11;
if($sum!=$arr[6]) {
print "Incorrect REGON7 (code)!<BR>";
return 1;
}
print "CORRECT!<BR>7 digit REGON code is: $reg<br>";
} else {
for($i = 0; $i<9; $i++)
{
if(!($reg[$i]>='0' && $reg[$i]<='9')) {
print "Incorrect REGON9! (DIGIT)<BR>";
return 1;
}
$arr[$i] = $reg[$i]-'0';
}
$sum = $arr[0]*8+$arr[1]*9+$arr[2]*2+$arr[3]*3+$arr[4]*4+$arr[5]*5+$arr[6]*6+$arr[7]*7;
$sum %= 11;
if($sum!=$arr[8]) {
print "Incorrect REGON9 (code)!<BR>";
return 1;
}
print "CORRECT!<BR>9 digit REGON code is: $reg<br>";
}
Back to main page