Find the Pisano Period
GolfScript (28 25 24 23 chars)
~1.{(2$+}{.@+2$%}/+\-,)
Takes input in stdin, leaves it on stdout (or the stack, if you want to further process it...)
This correctly handles the corner cases (Demo).
As a point of interest to GolfScript programmers, I think this is the first program I've written with an unfold which actually came out shorter than the other approaches I tried.
GolfScript, 24 characters
~:&1.{.2$+&%.2$(|}do](-,
Next iteration of a GolfScript implementation. The second version now also handles 1 correctly. It became quite long but maybe someone can find a way to shorten this version. You can try above version online.
Python, 188 132 101 95 87 characters
n=input()
s=[]
a=k=0
b=1
while s[:k]!=s[k:]or k<1:s+=[a%n];k=len(s)/2;a,b=b,a+b
print k
Usage
$ echo 10 | python pisano.py
60
For example:
$ for i in {1..50}; do; echo $i | python pisano.py; done
1
3
8
6
20
24
16
12
24
60
10
24
28
48
40
24
36
24
18
60
16
30
48
24
100
84
72
48
14
120
30
48
40
36
80
24
76
18
56
60
40
48
88
30
120
48
32
24
112
300