Python

(파이썬) 완전수 구하기

고니자니 2024. 6. 29. 08:51
반응형

완전수는 자신을 제외한 약수의 합이 자신과 같은 수를 의미합니다. 예를 들어, 6은 1, 2, 3의 약수를 가지며, 이 약수들의 합(1+2+3)이 6이므로 6은 완전수입니다.

파이썬을 이용하여 특정 범위 내의 완전수를 찾는 코드를 작성해보겠습니다.

 

여기서는 예제로 1부터 10,000까지의 수 중에서 완전수를 찾아보겠습니다.

 

1.

def is_perfect_number(n):
    if n < 2:
        return False
    divisors = [1]
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n // i)
    return sum(divisors) == n

perfect_numbers = [n for n in range(1, 10001) if is_perfect_number(n)]

print(perfect_numbers)

(결과)

[6, 28, 496, 8128]

파이썬 완전수 구하

 

2.

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

perfect_numbers = []
for num in range(1, 10001):
    factors = find_factors(num)
    if sum(factors) == num:
        perfect_numbers.append(num)

print("1부터 10000까지의 완전수는:", perfect_numbers)

(결과)

[6, 28, 496, 8128]

 


C언어, 완전수 구하기

https://gonyzany.tistory.com/140

 

(C언어) 완전수 구하기 (perfect number)

완전수(perfect number) 자기 자신을 제외한 약수의 합이 자기 자신과 같은 수이다. 예를 들어, 6의 약수는 1,2,3이며, 이 수를 합하면 6이므로 6은 완전수이다. [문제] 2부터 1000까지의 수 중에서 완전수

gonyzany.tistory.com

 

 

반응형