def solution(left, right):
to_one = 0
to_two = 0
for i in range(left,right):
for num in (range(1,i) / i):
if num == 0:
int_num = []
int_num.append(i)
elif i>right:
if len(int_num) / 2 == 0:
for idx in range(0,len(int_num)-1):
to_one += int_num[idx]
elif len(int_num) / 2 == 1:
for idx in range(0,len(int_num)-1):
to_two += int_num[idx]
answer = (to_one + to_two)
return answer
a = input(int("첫번째 정수를 입력하시오"))
b = input(int("두번째 정수를 입력하시오"))
print(solution(a,b))
문제
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요
예시
| 수 | 약수 | 약수의 개수 |
|---|---|---|
| 13 | 1, 13 | 2 |
| 14 | 1, 2, 7, 14 | 4 |
| 15 | 1, 3, 5, 15 | 4 |
| 16 | 1, 2, 4, 8, 16 | 5 |
| 17 | 1, 17 | 2 |
위 코드가 제가짠 코든데 왜 안되는지 알려주실 수 있나요?
ㅠㅠ
안 돌려봐서 모르겠지만 1부터 i까지 다 돌리면 무조건 시간초과 뜰 듯. 약수 갯수가 홀수 = 제곱수라는걸 이용해봐
감사합니다 한번 해볼께요