체리의 하루
Published 2023. 3. 27. 13:12
[Go] BOJ / 9506번 / 약수들의 합 BOJ/Go

💻 문제

 

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