💻 문제
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
📜 풀이
<go />
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var n, sum int
r := bufio.NewReader(os.Stdin)
w := bufio.NewWriter(os.Stdout)
defer w.Flush()
for {
fmt.Fscanln(r, &n)
var factor []int
sum = 0
if n == -1 {
break
} else {
for i := 1; i < n; i++ { //자신을 제외한 약수의 합
if n%i == 0 {
sum += i
factor = append(factor, i)
}
}
if n == sum {
fmt.Fprintf(w, "%d = ", n)
for j := range factor {
if j == len(factor)-1 {
fmt.Fprintf(w, "%d\n", factor[j])
} else {
fmt.Fprintf(w, "%d + ", factor[j])
}
}
} else {
fmt.Fprintf(w, "%d is NOT perfect.\n", n)
}
}
}
}
✍ 설명
- slice = append(slice, 값) : 슬라이스 마지막 부분에 추가됨
- slice = append(값, slice) : 슬라이스 앞 부분에 추가됨
728x90
'BOJ > Go' 카테고리의 다른 글
[Go] BOJ / 11653번 / 소인수분해 (0) | 2023.03.27 |
---|---|
[Go] BOJ / 2581번 / 소수 (0) | 2023.03.27 |
[Go] BOJ / 1978번 / 소수 찾기 (0) | 2023.03.27 |
[Go] BOJ / 2501번 / 약수 구하기 (0) | 2023.03.27 |
[Go] BOJ / 5086번 / 배수와 약수 (0) | 2023.03.27 |