xah icon

0010 - Project Euler

xah | PRO | 11/23/21 06:57:31 AM UTC | 0 ⭐ | 15082 👁️ | Never ⏰ | []
Go |

1.17 KB

|

None

|

0 👍

/

0 👎

// 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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎