// 0010.go contains some functions to solve ProjectEuler.net's Problem #10
// https://projecteuler.net/problem=10
package main
import "fmt"
// IsPrimeNumber returns true if a given number is a prime number annd false
// if not. The given number is assumed to be a positive number.
func IsPrimeNumber(number int) bool {
if number == 2 || number == 3 {
// Return true as 2,3 are always prime
return true
}
if number == 1 || number % 2 == 0 || number % 3 == 0 {
// Return false as 1 or numbers dividable by 2,3 are never prime
return false
}
// Loop to find other possible primes
for i := 5; i*i <= number; i += 6 {
if number % i == 0 || number % (i+2) == 0 {
// Factor found, number cannot be prime
return false
}
}
// No factors were found, number must be prime
return true
}
// SumPrimes returns the sum of all prime numbers under the given max number.
func SumPrimes(maxNumber int) int {
sum := 2
for i := 3; i < maxNumber; i += 2 {
if IsPrimeNumber(i) {
// Add to sum as is a prime number
sum += i
}
}
// Return result
return sum
}
func main(){
// Display result
fmt.Println(SumPrimes(2000000))
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎