Euler no.3 : Largest prime factor

euler_portrait

Largest prime factor

가장 큰 소인수 구하기

소인수중에 유일한 짝수 소인수는 2 이지만 처음 입력값이 600851475143 이기에 짝수 관련 연산은 진행하지 않음 ㅎ_ㅎ 너무 야매로했나

package main
import (
        "fmt"
        "time"
)

func main() {
        start := time.Now() // 작동 시간 카운트를 위해 넣음

        var n int = 600851475143
        var a []int

        for i:=3; i<=n; i=i+2 { //입력값이 홀수이기에 소인수는 홀수만 나옴
                for n%i == 0 {
                        a = append(a, i)
                        n = n/i
                }
        }
        fmt.Println("600851475143의 소인수는 ", a)
        i := len(a) - 1 // 작은수에서 큰수로 값이 입력되기에 가장 마지막 값 출력
        fmt.Println("가장 큰 소인수는 ", a[i])

        fmt.Println("계산 시간 : ",time.Since(start))
}

 

┌──(daleji㉿DESKTOP)-[~]
└─$ go run euler3.go
600851475143의 소인수는  [71 839 1471 6857]
가장 큰 소인수는  6857
계산 시간 :  24.4µs

Related Posts

Leave a comment