본문 바로가기
개발일지/Python

[복기] 파이썬 1부터 10까지의 약수를 각 수별로 리스트에 넣고, 딕셔너리에 넣기

by 개발에정착하고싶다 2022. 5. 12.
320x100
'''
# 1부터 10까지 각각의 정수에 대한 약수를 저장하는 딕셔너리를 만들고 출력하는 프로그램
# 해답코드
# 딕셔너리 안에 일일이 넣어주는 것이 아니라 중간역할을 해주는 리스트에 값들을 넣어주고
# 마지막에 딕셔너리에 넣더라.

dic = {}

for n1 in range(2, 11):
    tempList = []
    for n2 in range(1,n1+1):
        if n1 % n2 == 0:
            tempList.append(n2)

    dic[n1] = tempList

print(dic)

'''






'''
# 내 코드 실패
# 약수를 구하는 건 알겠는데, 딕셔너리에 반복문으로 키의 훼손없이
# 해당 키에 들어가는 벨류값을 누적해서 넣는걸 모르겠다.

# inputNum = int(input('원하는 숫자 입력: ')):


small_number_list = {}


for a in range(1,10+1):
    for i in range(1,a+1):
        if a % i == 0:
            x = small_number_list[a]
            x.append

print(small_number_list)
'''


# 두번째 도전
# 리스트를 먼저 만들고 딕셔너리에 넣어준다는 팁을 얻고 재시도
# 실패. 전체 약수를 구하긴 했는데, 뭐에 해당하는 약수인지 표현이 안된다.


dic = {}

# 두번째 시도때 여기에 위치해있었는데, 꼬인 값이 나온것 같았다.
# tempList = []
for a in range(1,11):
    # 해답을 보고 나니 여기에 값이 있더라. 그러고 낭니깐 되었다.
    tempList = []
    for b in range(1, a+1):
        if a % b == 0:
            tempList.append(b)
    dic[a] = tempList

print(dic)
300x250