# Check if a number can be represented as the sum of numbers with at least one digit equal to K

Given integers **N **and **K**, the task is to check if a number can be represented as the sum of numbers that have at least one digit equal to K.

**Example:**

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the **Essential Maths for CP Course** at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

Input:N = 68, K = 7Output:YESExplanation:68 = (27 + 17 + 17 + 7). Each number has atleast one digit equal to 7.

Input:N = 23, K = 3Output:YESExplanation:23 itself contains a digit equal to 3.

**Approach: **The given problem can be solved by using simple concepts of math. Follow the steps below to solve the problem:

- Initialize a variable
**temp**to**k**, and also take a counter say**count**, assign it with 0 - Iterate till the last digits of
**temp**and**N**are not equal and at each iteration- Increment the value of
**temp**by**k** - Keep a
**count**of iterations and break the loop if the count becomes greater than 10

- Increment the value of
- Check if the last digits of
**temp**and**N**are equal, and if the value of**temp****<=****N**:- If the above condition is satisfied return true
- Else return false

- Also if
**k * 10 <= N**, return true - Else return false

Below is the implementation of the above approach:

## C++

`// C++ implementation for the above approach` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function to Check if a number can` `// be equal to sum of numbers having` `// at least one digit equal to k` `bool` `checkEqualtoSum(` `int` `N, ` `int` `k)` `{` ` ` `// Temporary variable to` ` ` `// store k` ` ` `int` `temp = k;` ` ` ` ` `// Variable for count` ` ` `int` `count = 0;` ` ` ` ` `// Iterating till count is less or` ` ` `// equal to 10 and N % 10 is not` ` ` `// equal to temp % 10` ` ` `while` `(count <= 10 &&` ` ` `N % 10 != temp % 10) {` ` ` ` ` `temp += k;` ` ` `count++;` ` ` `}` ` ` ` ` `// If N % 10 is equal to temp % 10` ` ` `// and temp is less or equal to N,` ` ` `// return true` ` ` `if` `(N % 10 == temp % 10 && temp <= N)` ` ` `return` `true` `;` ` ` ` ` `// If k * 10 <= N, return true` ` ` `if` `(k * 10 <= N)` ` ` `return` `true` `;` ` ` ` ` `// Else return false` ` ` `return` `false` `;` `}` `// Driver Code` `int` `main()` `{` ` ` `int` `N = 68;` ` ` `int` `K = 7;` ` ` `// Call the function` ` ` `if` `(checkEqualtoSum(N, K))` ` ` `cout << ` `"YES"` `;` ` ` `else` `cout << ` `"NO"` `;` ` ` ` ` `return` `0;` `}` |

## Java

`// Java program for the above approach` `import` `java.io.*;` `class` `GFG {` ` ` `// Function to Check if a number can` ` ` `// be equal to sum of numbers having` ` ` `// at least one digit equal to k` ` ` `static` `boolean` `checkEqualtoSum(` `int` `N, ` `int` `k)` ` ` `{` ` ` `// Temporary variable to` ` ` `// store k` ` ` `int` `temp = k;` ` ` `// Variable for count` ` ` `int` `count = ` `0` `;` ` ` `// Iterating till count is less or` ` ` `// equal to 10 and N % 10 is not` ` ` `// equal to temp % 10` ` ` `while` `(count <= ` `10` `&& N % ` `10` `!= temp % ` `10` `) {` ` ` `temp += k;` ` ` `count++;` ` ` `}` ` ` `// If N % 10 is equal to temp % 10` ` ` `// and temp is less or equal to N,` ` ` `// return true` ` ` `if` `(N % ` `10` `== temp % ` `10` `&& temp <= N)` ` ` `return` `true` `;` ` ` `// If k * 10 <= N, return true` ` ` `if` `(k * ` `10` `<= N)` ` ` `return` `true` `;` ` ` `// Else return false` ` ` `return` `false` `;` ` ` `}` ` ` `// Driver Code` ` ` `public` `static` `void` `main(String[] args)` ` ` `{` ` ` `// Given Input` ` ` `int` `N = ` `68` `;` ` ` `int` `K = ` `7` `;` ` ` `// Call the function` ` ` `if` `(checkEqualtoSum(N, K))` ` ` `System.out.println(` `"YES"` `);` ` ` `else` ` ` `System.out.println(` `"NO"` `);` ` ` `}` `}` `// This code is contributed by dwivediyash` |

## Python3

`# python implementation for the above approach` `# Function to Check if a number can` `# be equal to sum of numbers having` `# at least one digit equal to k` `def` `checkEqualtoSum(N, k):` ` ` `# Temporary variable to` ` ` `# store k` ` ` `temp ` `=` `k` ` ` `# Variable for count` ` ` `count ` `=` `0` ` ` `# Iterating till count is less or` ` ` `# equal to 10 and N % 10 is not` ` ` `# equal to temp % 10` ` ` `while` `(count <` `=` `10` `and` `N ` `%` `10` `!` `=` `temp ` `%` `10` `):` ` ` `temp ` `+` `=` `k` ` ` `count ` `+` `=` `1` ` ` `# If N % 10 is equal to temp % 10` ` ` `# and temp is less or equal to N,` ` ` `# return true` ` ` `if` `(N ` `%` `10` `=` `=` `temp ` `%` `10` `and` `temp <` `=` `N):` ` ` `return` `True` ` ` `# If k * 10 <= N, return true` ` ` `if` `(k ` `*` `10` `<` `=` `N):` ` ` `return` `True` ` ` `# Else return false` ` ` `return` `False` `# Driver Code` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `N ` `=` `68` ` ` `K ` `=` `7` ` ` `# Call the function` ` ` `if` `(checkEqualtoSum(N, K)):` ` ` `print` `(` `"YES"` `)` ` ` `else` `:` ` ` `print` `(` `"NO"` `)` ` ` `# This code is contributed by rakeshsahni` |

## Javascript

`<script>` ` ` `// JavaScript implementation for the above approach` ` ` `// Function to Check if a number can` ` ` `// be equal to sum of numbers having` ` ` `// at least one digit equal to k` ` ` `const checkEqualtoSum = (N, k) => {` ` ` `// Temporary variable to` ` ` `// store k` ` ` `let temp = k;` ` ` `// Variable for count` ` ` `let count = 0;` ` ` `// Iterating till count is less or` ` ` `// equal to 10 and N % 10 is not` ` ` `// equal to temp % 10` ` ` `while` `(count <= 10 &&` ` ` `N % 10 != temp % 10) {` ` ` `temp += k;` ` ` `count++;` ` ` `}` ` ` `// If N % 10 is equal to temp % 10` ` ` `// and temp is less or equal to N,` ` ` `// return true` ` ` `if` `(N % 10 == temp % 10 && temp <= N)` ` ` `return` `true` `;` ` ` `// If k * 10 <= N, return true` ` ` `if` `(k * 10 <= N)` ` ` `return` `true` `;` ` ` `// Else return false` ` ` `return` `false` `;` ` ` `}` ` ` `// Driver Code` ` ` `let N = 68;` ` ` `let K = 7;` ` ` `// Call the function` ` ` `if` `(checkEqualtoSum(N, K))` ` ` `document.write(` `"YES"` `);` ` ` `else` `document.write(` `"NO"` `);` ` ` `// This code is contributed by rakeshsahni` `</script>` |

## C#

`// C# implementation for the above approach` `using` `System;` `class` `gFG` `{` ` ` ` ` `// Function to Check if a number can` ` ` `// be equal to sum of numbers having` ` ` `// at least one digit equal to k` ` ` `static` `bool` `checkEqualtoSum(` `int` `N, ` `int` `k)` ` ` `{` ` ` `// Temporary variable to` ` ` `// store k` ` ` `int` `temp = k;` ` ` `// Variable for count` ` ` `int` `count = 0;` ` ` `// Iterating till count is less or` ` ` `// equal to 10 and N % 10 is not` ` ` `// equal to temp % 10` ` ` `while` `(count <= 10 && N % 10 != temp % 10) {` ` ` `temp += k;` ` ` `count++;` ` ` `}` ` ` `// If N % 10 is equal to temp % 10` ` ` `// and temp is less or equal to N,` ` ` `// return true` ` ` `if` `(N % 10 == temp % 10 && temp <= N)` ` ` `return` `true` `;` ` ` `// If k * 10 <= N, return true` ` ` `if` `(k * 10 <= N)` ` ` `return` `true` `;` ` ` `// Else return false` ` ` `return` `false` `;` ` ` `}` ` ` `// Driver Code` ` ` `public` `static` `void` `Main()` ` ` `{` ` ` `int` `N = 68;` ` ` `int` `K = 7;` ` ` `// Call the function` ` ` `if` `(checkEqualtoSum(N, K))` ` ` `Console.WriteLine(` `"YES"` `);` ` ` `else` ` ` `Console.WriteLine(` `"NO"` `);` ` ` `}` `}` `// This code is contributed by ukasp.` |

**Output**

YES

**Time Complexity: **O(1)**Auxiliary Space: **O(1)