완전수란 자기 자신을 제외한 모든 양의 약수들을 더했을 때 자기 자신이 되는 수 입니다.
예를 들어 이므로 은 완전수 입니다.
주어지는 start에서 end 이내에 있는 숫자들 중 완전수가 몇 개인지 출력하는 코드를 작성해보세요.
# 변수 선언 및 입력:
start, end = tuple(map(int, input().split()))
ans = 0
for curr_num in range(start, end + 1):
# Step 1:
divisor_sum = 0
for divisor in range(1, curr_num):
if curr_num % divisor == 0:
divisor_sum += divisor
# Case 1:
if divisor_sum == curr_num:
ans += 1
print(ans)
# 나의 풀이 ------------------------------
inp = input().split(" ")
a = int(inp[0])
b = int(inp[1])
cnt = 0
for i in range(a, b + 1): # a부터 b까지의 숫자 중에서
sum_val = 0
for j in range(1, i): # 약수를 구하기 위해
if i % j == 0: # j가 i의 약수이면
sum_val += j # sum_val 값에 j를 더해서 합 구하기
if i == sum_val: # i가 완전수이면
cnt += 1 # cnt 변수에 1씩 추가
print(cnt)
'Python > [코드트리]' 카테고리의 다른 글
[코드트리] n번 반복 > 소수 구하기 (0) | 2023.06.27 |
---|---|
[코드트리] n번 반복 > 약수의 개수가 3개인 수 (0) | 2023.06.27 |
[코드트리] n번 반복 > 3n + 1 수열 m번(★) (0) | 2023.06.27 |
[코드트리] 알파벳 출력 > 알파벳 출력하기 2 (0) | 2023.06.27 |
[코드트리] 알파벳 출력 > 알파벳 출력하기 (0) | 2023.06.27 |