Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 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))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement