Check if N can be represented as sum of positive integers containing digit D at least once
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:
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:
- Check if the given N contains digit D or not. If found to be true, then print “Yes”.
- Otherwise, iterate until N is greater than 0 and perform the following steps:
- Subtracting the value D from the value of N.
- Check if the updated value of N contains digit D or not. If found to be true, then print “Yes” and break out of the loop.
- After completing the above steps, if none of the above conditions satisfies, then print “No”.
Below is the implementation of the above approach:
C++
// C++ program for the above approach #include <iostream> 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
<script> // javascript program for the above approach // Function to check if N contains // digit D in it function findDigit(N, D) { // Iterate until N is positive while (N > 0) { // Find the last digit let a = N % 10; // If the last digit is the // same as digit D if (a == D) { return true ; } N = Math.floor(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 function 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 let N = 24; let D = 7; if (check(N, D)) { document.write( "Yes" ); } else { document.write( "No" ); } </script> |
Output:
Yes
Time Complexity: O(N)
Space Complexity: O(1)
Please Login to comment...