BOJ/Go
[Go] BOJ / 9506번 / 약수들의 합
d체리b
2023. 3. 27. 13:12
💻 문제
9506번: 약수들의 합
어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라.
www.acmicpc.net
📜 풀이
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