# Check if N can be represented as sum of positive integers containing digit D at least once

• Difficulty Level : Hard
• Last Updated : 26 Nov, 2021

Given a positive integer N and a digit D, the task is to check if N can be represented as a sum of positive integers containing the digit D at least once. If it is possible to represent N in such format, then print “Yes”. Otherwise, print “No”.

Examples:

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 = 24, D = 7
Output: Yes
Explanation: The value 24 can be represented as 17 + 7, both containing the digit 7.

Input: N = 27 D = 2
Output: Yes

Approach: Follow the steps to solve the problem:

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach`   `#include ` `using` `namespace` `std;`   `// Function to check if N contains` `// digit D in it` `bool` `findDigit(``int` `N, ``int` `D)` `{` `    ``// Iterate until N is positive` `    ``while` `(N > 0) {`   `        ``// Find the last digit` `        ``int` `a = N % 10;`   `        ``// If the last digit is the` `        ``// same as digit D` `        ``if` `(a == D) {` `            ``return` `true``;` `        ``}`   `        ``N /= 10;` `    ``}`   `    ``// Return false` `    ``return` `false``;` `}`   `// Function to check if the value of` `// N can be represented as sum of` `// integers having digit d in it` `bool` `check(``int` `N, ``int` `D)` `{` `    ``// Iterate until N is positive` `    ``while` `(N > 0) {`   `        ``// Check if N contains digit` `        ``// D or not` `        ``if` `(findDigit(N, D) == ``true``) {` `            ``return` `true``;` `        ``}`   `        ``// Subtracting D from N` `        ``N -= D;` `    ``}`   `    ``// Return false` `    ``return` `false``;` `}`   `// Driver Code` `int` `main()` `{` `    ``int` `N = 24;` `    ``int` `D = 7;` `    ``if` `(check(N, D)) {` `        ``cout << ``"Yes"``;` `    ``}` `    ``else` `{` `        ``cout << ``"No"``;` `    ``}`   `    ``return` `0;` `}`

## Java

 `// Java approach for the above approach` `import` `java.util.*;`   `class` `GFG{`   `// Function to check if N contains` `// digit D in it` `static` `boolean` `findDigit(``int` `N, ``int` `D)` `{` `    `  `    ``// Iterate until N is positive` `    ``while` `(N > ``0``)` `    ``{` `        `  `        ``// Find the last digit` `        ``int` `a = N % ``10``;`   `        ``// If the last digit is the` `        ``// same as digit D` `        ``if` `(a == D) ` `        ``{` `            ``return` `true``;` `        ``}` `        ``N /= ``10``;` `    ``}`   `    ``// Return false` `    ``return` `false``;` `}`   `// Function to check if the value of` `// N can be represented as sum of` `// integers having digit d in it` `static` `boolean` `check(``int` `N, ``int` `D)` `{` `    `  `    ``// Iterate until N is positive` `    ``while` `(N > ``0``) ` `    ``{` `        `  `        ``// Check if N contains digit` `        ``// D or not` `        ``if` `(findDigit(N, D) == ``true``) ` `        ``{` `            ``return` `true``;` `        ``}` `        `  `        ``// Subtracting D from N` `        ``N -= D;` `    ``}` `    `  `    ``// Return false` `    ``return` `false``;` `}` ` `  `// Driver Code` `public` `static` `void` `main(String[] args)` `{` `    ``int` `N = ``24``;` `    ``int` `D = ``7``;` `    `  `    ``if` `(check(N, D)) ` `    ``{` `        ``System.out.print(``"Yes"``);` `    ``}` `    ``else` `    ``{` `        ``System.out.print(``"No"``);` `    ``}` `}` `}`   `// This code is contributed by sanjoy_62`

## Python3

 `# Python3 program for the above approach`   `# Function to check if N contains` `# digit D in it` `def` `findDigit(N, D):` `    `  `    ``# Iterate until N is positive` `    ``while` `(N > ``0``):` `        `  `        ``# Find the last digit` `        ``a ``=` `N ``%` `10`   `        ``# If the last digit is the` `        ``# same as digit D` `        ``if` `(a ``=``=` `D):` `            ``return` `True`   `        ``N ``/``=` `10`   `    ``# Return false` `    ``return` `False`   `# Function to check if the value of` `# N can be represented as sum of` `# integers having digit d in it` `def` `check(N, D):` `    `  `    ``# Iterate until N is positive` `    ``while` `(N > ``0``):`   `        ``# Check if N contains digit` `        ``# D or not` `        ``if` `(findDigit(N, D) ``=``=` `True``):` `            ``return` `True`   `        ``# Subtracting D from N` `        ``N ``-``=` `D`   `    ``# Return false` `    ``return` `False`   `# Driver Code` `if` `__name__ ``=``=` `'__main__'``:` `    `  `    ``N ``=` `24` `    ``D ``=` `7` `    `  `    ``if` `(check(N, D)):` `        ``print``(``"Yes"``)` `    ``else``:` `        ``print``(``"No"``)`   `# This code is contributed by mohit kumar 29`

## C#

 `// C# program for the above approach` `using` `System;` ` `  `class` `GFG{` ` `  `// Function to check if N contains` `// digit D in it` `static` `bool` `findDigit(``int` `N, ``int` `D)` `{` `     `  `    ``// Iterate until N is positive` `    ``while` `(N > 0)` `    ``{` `         `  `        ``// Find the last digit` `        ``int` `a = N % 10;` ` `  `        ``// If the last digit is the` `        ``// same as digit D` `        ``if` `(a == D)` `        ``{` `            ``return` `true``;` `        ``}` `        ``N /= 10;` `    ``}` ` `  `    ``// Return false` `    ``return` `false``;` `}` ` `  `// Function to check if the value of` `// N can be represented as sum of` `// integers having digit d in it` `static` `bool` `check(``int` `N, ``int` `D)` `{` `     `  `    ``// Iterate until N is positive` `    ``while` `(N > 0)` `    ``{` `         `  `        ``// Check if N contains digit` `        ``// D or not` `        ``if` `(findDigit(N, D) == ``true``)` `        ``{` `            ``return` `true``;` `        ``}` `         `  `        ``// Subtracting D from N` `        ``N -= D;` `    ``}` `     `  `    ``// Return false` `    ``return` `false``;` `}`   ` `  `// Driver Code` `public` `static` `void` `Main()` `{` `    ``int` `N = 24;` `    ``int` `D = 7;` `     `  `    ``if` `(check(N, D))` `    ``{` `        ``Console.WriteLine(``"Yes"``);` `    ``}` `    ``else` `    ``{` `        ``Console.WriteLine(``"No"``);` `    ``}` `     `  `}` `}`   `// This code is contributed by code_hunt.`

## Javascript

 ``

Output:

`Yes`

Time Complexity: O(N)
Space Complexity: O(1)

My Personal Notes arrow_drop_up
Recommended Articles
Page :