본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 6491번 Perfection

by 현장 2025. 2. 28.

-Code

import sys

def solution(n):
    answer = []
    for i in range(1, n):
        if n % i == 0:
            answer.append(i)
    return answer

nums = list(map(int, sys.stdin.read().split()))

for num in nums:
    if num == 0:
        break

    sum_list = sum(solution(num))

    if sum_list == num:
        res = "PERFECT"
    elif sum_list < num:
        res = "DEFICIENT"
    else:
        res = "ABUNDANT"

    print(f"{num} {res}")

sqrt를 사용하는 방법을 해봤지만 해결이 안 돼서 완전 탐색 방법으로 바꾸어서 풀었습니다.