Pisano period: Difference between revisions

Content added Content deleted
(Added Go)
(→‎{{header|Go}}: Replaced 'isPrime' function with a more efficient one.)
Line 71: Line 71:
}
}


// OK for 'small' numbers.
// Not particularly efficient but suffices here.
func isPrime(n uint) bool {
func isPrime(n uint) bool {
if n%2 == 0 {
switch {
case n < 2:
return false
case n%2 == 0:
return n == 2
return n == 2
}
case n%3 == 0:
if n%3 == 0 {
return n == 3
return n == 3
}
default:
primes := getPrimes(n)
d := uint(5)
if len(primes) == 1 && primes[0] == n {
for d*d <= n {
if n%d == 0 {
return false
}
d += 2
if n%d == 0 {
return false
}
d += 4
}
return true
return true
}
}
return false
}
}