1. 문제
정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
제한 사항
- n은 0 이상 3000이하인 정수입니다.
2. 풀이
// 약수의 합
package sumcd
func Solution(n int) int {
sum := 0
for i := 1; i*i <= n; i++ {
if n%i == 0 {
cd := n / i
sum += cd
if cd != n/cd {
sum += n / cd
}
}
}
return sum
}
3. 테스트
package sumcd
import "testing"
func TestSumcd(t *testing.T) {
input := []int{12, 5}
expect := []int{28, 6}
for i := range input {
result := Solution(input[i])
if result != expect[i] {
t.Errorf("Test%d: Wrong result", i+1)
t.Error("expect:", expect[i])
t.Error("result:", result)
}
}
}
'Programmers > Go' 카테고리의 다른 글
[Programmers/Go] 자릿수 더하기 (0) | 2021.04.30 |
---|---|
[Programmers/Go] 이상한 문자 만들기 (0) | 2021.04.30 |
[Programmers/Go] 시저 암호 (0) | 2021.04.30 |
[Programmers/Go] 문자열을 정수로 바꾸기 (0) | 2021.04.30 |
[Programmers/Go] 수박수박수박수박수박수? (0) | 2021.04.29 |