Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 0007.go contains some functions to solve ProjectEuler.net's Problem #7
- // https://projecteuler.net/problem=7
- 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
- }
- // NthPrime finds the nth prime number, given the number to find (n).
- func NthPrime(n int) int {
- // Initialise variables
- count := 1
- i := 3
- for i = 3; count < n; i+=2 {
- if IsPrimeNumber(i) {
- // Check if number is prime
- count += 1
- }
- }
- // Backtrack one loop
- return i-2
- }
- func main(){
- // Answer the problem
- fmt.Println(NthPrime(10001))
- }
Add Comment
Please, Sign In to add comment