예제 #1
0
파일: c092.go 프로젝트: moul/euler
func c092GetLoopNumber(starting int) int {
	for starting != 1 && starting != 89 {
		sum := 0
		for _, digit := range utils.NumberDigits(starting) {
			sum += digit * digit
		}
		starting = sum
	}
	return starting
}
예제 #2
0
파일: c030.go 프로젝트: moul/euler
func C030() (interface{}, error) {
	total := 0
	for nb := 2; nb < 1000000; nb++ {
		sum := 0
		for _, digit := range utils.NumberDigits(nb) {
			sum += utils.IntPow(digit, 5)
		}
		if sum == nb {
			total += sum
		}
	}
	return total, nil
}
예제 #3
0
파일: c034.go 프로젝트: moul/euler
func C034() (interface{}, error) {
	total := 0
	for nb := 3; nb < 100000; nb++ {
		factSum := big.NewInt(0)

		for _, digit := range utils.NumberDigits(nb) {
			factSum = factSum.Add(factSum, utils.Factorial(digit))
		}
		if strconv.Itoa(nb) == factSum.String() {
			total += nb
		}
	}
	return total, nil
}