숫자 n이 있다고 가정하면 n의 짝수 자리 숫자의 곱이 n의 홀수 자리 숫자의 합으로 나누어 떨어지는지 확인해야 합니다. 장소는 오른쪽에서 왼쪽으로 계산을 시작합니다. 가장 오른쪽이 1번 위치에 있습니다.
따라서 입력이 n =59361과 같으면 출력은 (1*3*5) =(6+9)와 같이 True가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- digit_count :=주어진 숫자 n의 숫자 개수
- 총계:=0, 생산량:=1
- n> 0일 때 수행
- digit_count가 짝수이면
- prod :=prod * n의 마지막 숫자
- 그렇지 않으면
- total :=total + n의 마지막 숫자
- n :=(n / 10)의 몫
- digit_count :=digit_count - 1
- digit_count가 짝수이면
- prod를 총계로 나눌 수 있는 경우
- 참 반환
- 거짓을 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시 코드
from math import log10 def solve(n): digit_count = int(log10(n))+1 total = 0 prod = 1 while n > 0 : if digit_count % 2 == 0 : prod *= n % 10 else: total += n % 10 n = n // 10 digit_count -= 1 if prod % total == 0: return True return False n = 59361 print(solve(n))
입력
59361
출력
True