LeetCode 2520. Count the Digits That Divide a Number Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
2520. Count the Digits That Divide a Number

Description

Given an integer num, return the number of digits in num that divide num.

An integer val divides nums if nums % val == 0.

 

Example 1:

Input: num = 7
Output: 1
Explanation: 7 divides itself, hence the answer is 1.

Example 2:

Input: num = 121
Output: 2
Explanation: 121 is divisible by 1, but not 2. Since 1 occurs twice as a digit, we return 2.

Example 3:

Input: num = 1248
Output: 4
Explanation: 1248 is divisible by all of its digits, hence the answer is 4.

 

Constraints:

  • 1 <= num <= 109
  • num does not contain 0 as one of its digits.

Solutions

Solution 1: Enumeration

We directly enumerate each digit val of the integer num, and if val can divide num, we add one to the answer.

After the enumeration, we return the answer.

The time complexity is O(log num), and the space complexity is O(1).

PythonJavaC++GoTypeScriptRustC
class Solution: def countDigits(self, num: int) -> int: ans, x = 0, num while x: x, val = divmod(x, 10) ans += num % val == 0 return ans(code-box)

Solution 2

TypeScriptRust
function countDigits(num: number): number { let ans = 0; for (const s of num.toString()) { if (num % Number(s) === 0) { ans++; } } return ans; }(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !