두 개의 숫자 p와 q가 있다고 가정합니다. 이 견인 번호의 모든 제수의 합이 같은지 여부를 확인해야 합니다.
따라서 입력이 p =559, q =703과 같으면 출력은 True가 됩니다. 559의 제수는 1, 13, 43이고 703은 1, 19, 37입니다. 제수의 합은 57입니다.피>
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- divSum() 함수를 정의합니다. n 소요됩니다.
- 총계:=1
- i :=2
- 동안 i * i <=n, do
- n의 배수가 i이면
- total :=total + i + (n / i)의 바닥
- 나는 :=나는 + 1
- n의 배수가 i이면
- 총 수익
- 메인 메소드에서 divSum(p)이 divSum(q)와 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
from math import floor def divSum(n): total = 1 i = 2 while i * i <= n: if n % i == 0: total += i + floor(n / i) i += 1 return total def solve(p, q): return divSum(p) == divSum(q) p = 559 q = 703 print(solve(p, q))
입력
559, 703
출력
True