##### Welcome to Subscribe On Youtube

Formatted question description: https://leetcode.ca/all/2269.html

# 2269. Find the K-Beauty of a Number

• Difficulty: Easy.
• Related Topics: Math, String, Sliding Window.
• Similar Questions: .

## Problem

The k-beauty of an integer num is defined as the number of substrings of num when it is read as a string that meet the following conditions:

• It has a length of k.

• It is a divisor of num.

Given integers num and k, return **the k-beauty of **num.

Note:

• 0 is not a divisor of any value.

A substring is a contiguous sequence of characters in a string.

Example 1:

Input: num = 240, k = 2
Output: 2
Explanation: The following are the substrings of num of length k:
- "24" from "240": 24 is a divisor of 240.
- "40" from "240": 40 is a divisor of 240.
Therefore, the k-beauty is 2.


Example 2:

Input: num = 430043, k = 2
Output: 2
Explanation: The following are the substrings of num of length k:
- "43" from "430043": 43 is a divisor of 430043.
- "30" from "430043": 30 is not a divisor of 430043.
- "00" from "430043": 0 is not a divisor of 430043.
- "04" from "430043": 4 is not a divisor of 430043.
- "43" from "430043": 43 is a divisor of 430043.
Therefore, the k-beauty is 2.


Constraints:

• 1 <= num <= 109

• 1 <= k <= num.length (taking num as a string)

## Solution (Java, C++, Python)

• class Solution {
public int divisorSubstrings(int num, int k) {
int i = 0;
int j = 0;
int count = 0;
String s = String.valueOf(num);
StringBuilder sb = new StringBuilder();
while (i < s.length() && j < s.length()) {
sb.append(s.charAt(j) - '0');
int val = Integer.parseInt(sb.toString());
if (j - i + 1 == k) {
if (val != 0 && num % val == 0) {
count++;
}
sb.deleteCharAt(0);
i++;
j++;
} else {
j++;
}
}
return count;
}
}

• Todo

• class Solution:
def divisorSubstrings(self, num: int, k: int) -> int:
ans = 0
s = str(num)
for i in range(len(s) - k + 1):
t = int(s[i : i + k])
if t and num % t == 0:
ans += 1
return ans

############

# 2269. Find the K-Beauty of a Number
# https://leetcode.com/problems/find-the-k-beauty-of-a-number/

class Solution:
def divisorSubstrings(self, nums: int, k: int) -> int:
num = str(nums)
n = len(num)
res = 0

for i in range(n - k + 1):
x = int(num[i : i + k])
​
if x != 0 and nums % x == 0:
res += 1

return res



Explain:

nope.

Complexity:

• Time complexity : O(n).
• Space complexity : O(n).