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