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