すみません、プログラム超素人なんですけど、VisualBasicの質問もここでいいのでしょうか…?
VisualBasic2008ExpressEditionで、フィボナッチ数列の剰余の周期性の長さを求めるプログラムを組んだんですが、
一部正常に動作してくれない。詳しい方がいたら、修正点を教えてもらえないでしょうか。

プログラムは以下の通りなんだけど、周期の長さが80以上になるような場合だと正常に動作してくれない…
どうか修正点の指摘よろしくです。。

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a(1000), b(1000), c, n, x
a(1) = 1 : a(2) = 1 : n = 2
x = Val(TextBox1.Text)
Do
n = n + 1
Label1.Text = n
a(n) = a(n - 2) + a(n - 1)
Label2.Text = a(n)
b(n) = a(n) Mod x
Label3.Text = b(n)
a(n + 1) = a(n - 1) + a(n)
Label4.Text = a(n + 1)
b(n + 1) = a(n + 1) Mod x
Label5.Text = b(n + 1)
If b(n) * b(n + 1) = 1 Then
c = n - 1
Exit Do
End If
Loop
Label6.Text = c
End Sub
End Class