소개
이 프로젝트에서는 1 부터 1000 까지의 범위 내에서 모든 완전수를 찾는 방법을 배우게 됩니다. 완전수는 자신을 제외한 진약수의 합과 같은 양의 정수입니다.
👀 미리보기
## 만약 범위가 1~10 이라면, 출력은 다음과 같아야 합니다:
Perfect numbers: 6 ## 6 = 1 + 2 + 3
🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
- 주어진 범위 내에서 모든 완전수를 찾기 위해
perfect_number함수를 구현하는 방법 perfect_number함수를 테스트하고 결과의 정확성을 확인하는 방법- 더 나은 성능과 가독성을 위해
perfect_number함수를 최적화하고 개선하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 완전수의 개념과 수학적 속성을 이해합니다.
- 지정된 범위 내에서 모든 완전수를 찾는 함수를 작성합니다.
- 코드가 올바르게 작동하는지 테스트하고 디버깅합니다.
- 더 나은 효율성과 가독성을 위해 코드를 최적화합니다.
- 문제 해결 능력을 적용하여 프로그래밍 능력을 향상시킵니다.
문제 이해
이 단계에서는 완전수의 개념과 프로젝트 요구 사항에 대해 배우게 됩니다.
완전수는 자신을 제외한 진약수의 합과 같은 양의 정수입니다. 예를 들어, 6 의 약수는 1, 2, 3 입니다. 6 = 1 + 2 + 3 이므로 6 은 완전수입니다.
이 프로젝트의 목표는 다음과 같습니다:
perfect_number.py에서perfect_number함수를 완성하여 1 부터 1000 까지의 범위 내에서 모든 완전수를 찾습니다.- 찾은 모든 완전수를 공백으로 구분하여 출력합니다.
perfect_number 함수 구현
perfect_number.py 파일을 열고 perfect_number 함수를 찾습니다. 이 함수는 1 부터 1000 까지의 범위 내에서 모든 완전수를 찾는 역할을 합니다.
다음은 제공된 초기 코드입니다:
def perfect_number():
"""
Find all the perfect numbers within the range of 1 to 1000.
Returns:
list: A list of perfect numbers found within the range of 1 to 1000.
"""
result = []
for num in range(1, 1001):
factors = []
for i in range(1, num):
if num % i == 0:
factors.append(i)
if sum(factors) == num:
result.append(num)
return result
코드를 단계별로 살펴보겠습니다:
perfect_number함수는 1 부터 1000 까지의 범위 내에서 모든 완전수를 찾도록 정의됩니다.- 완전수를 저장하기 위해 빈 리스트
result가 초기화됩니다. - 함수는 1 부터 1000 까지 (포함) 의 숫자를 반복합니다.
- 각 숫자에 대해, 함수는 해당 숫자의 약수 (자신을 제외) 를 찾아서
factors리스트에 추가합니다. - 약수의 합이 숫자와 같으면, 해당 숫자는 완전수로 간주되어
result리스트에 추가됩니다. - 마지막으로, 함수는 찾은 모든 완전수를 포함하는
result리스트를 반환합니다.
perfect_number 함수 테스트
perfect_number 함수를 테스트하려면, perfect_number.py 파일의 끝에 다음 코드를 추가하십시오:
if __name__ == "__main__":
result = perfect_number()
print("Perfect numbers:", " ".join(map(str, result)))
이 코드는 perfect_number 함수를 호출하고 찾은 모든 완전수를 공백으로 구분하여 출력합니다.
perfect_number.py 파일을 저장하고 스크립트를 실행합니다:
python perfect_number.py
출력 결과는 다음과 같아야 합니다:
Perfect numbers: 6 28 496
이는 perfect_number 함수가 올바르게 작동하고 1 부터 1000 까지의 범위 내에서 완전수를 찾았음을 의미합니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



