Check if a number starts with another number or not

Given two numbers A and B where (A > B), the task is to check if B is a prefix of A or not. Print “Yes” if it is a prefix Else print “No”.

Examples: 

Input: A = 12345, B = 12 
Output: Yes

Input: A = 12345, B = 345 
Output: No 

Approach: 



  1. Convert the given numbers A and B to strings str1 and str2 respectively.
  2. Traverse both the strings from the start of the strings.
  3. While traversing the strings, if at any index characters from str1 and str2 are unequal then print “No”.
  4. Else print “Yes”.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for the above approach
#include "bits/stdc++.h"
using namespace std;
  
// Function to check if B is a
// prefix of A or not
bool checkprefix(int A, int B)
{
  
    // Convert numbers into strings
    string s1 = to_string(A);
    string s2 = to_string(B);
  
    // Find the lengths of strings
    // s1 and s2
    int n1 = s1.length();
    int n2 = s2.length();
  
    // Base Case
    if (n1 < n2) {
        return false;
    }
  
    // Traverse the strings s1 & s2
    for (int i = 0; i < n2; i++) {
  
        // If at any index characters
        // are unequals then return false
        if (s1[i]
            != s2[i]) {
            return false;
        }
    }
  
    // Return true
    return true;
}
  
// Driver Code
int main()
{
    // Given numbers
    int A = 12345, B = 12;
  
    // Function Call
    bool result = checkprefix(A, B);
  
    // If B is a prefix of A, then
    // print "Yes"
    if (result) {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program for the above approach
class GFG{
  
// Function to check if B is a
// prefix of A or not
static boolean checkprefix(int A, int B)
{
      
    // Convert numbers into Strings
    String s1 = String.valueOf(A);
    String s2 = String.valueOf(B);
  
    // Find the lengths of Strings
    // s1 and s2
    int n1 = s1.length();
    int n2 = s2.length();
  
    // Base Case
    if (n1 < n2)
    {
        return false;
    }
  
    // Traverse the Strings s1 & s2
    for(int i = 0; i < n2; i++)
    {
          
        // If at any index characters
        // are unequals then return false
        if (s1.charAt(i) != s2.charAt(1))
        {
            return false;
        }
    }
  
    // Return true
    return true;
}
  
// Driver Code
public static void main(String[] args)
{
      
    // Given numbers
    int A = 12345, B = 12;
  
    // Function call
    boolean result = checkprefix(A, B);
  
    // If B is a prefix of A, then
    // print "Yes"
    if (!result)
    {
        System.out.print("Yes");
    }
    else 
    {
        System.out.print("No");
    }
}
}
  
// This code is contributed by amal kumar choubey

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program for the
# above approach
  
# Function to check if B is 
# a prefix of A or not
def checkprefix(A, B):
      
    # Convert numbers into strings
    s1 = str(A)
    s2 = str(B)
      
    # Find the length of s1 and s2
    n1 = len(s1)
    n2 = len(s2)
      
    # Base case
    if n1 < n2:
        return False
          
    # Traverse the string s1 and s2
    for i in range(0, n2):
          
        # If at any index characters
        # are unequal then return False
        if s1[i] != s2[i]:
            return False
              
    return True
  
# Driver code
if __name__=='__main__':
      
    # Given numbers 
    A = 12345
    B = 12
      
    # Fucntion call
    result = checkprefix(A, B)
      
    # If B is a prefix of A ,
    # then print Yes
    if result:
        print("Yes")
    else:
        print("No")
          
# This code is contributed by virusbuddah_

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program for the above approach
using System;
  
class GFG{
      
// Function to check if B is a
// prefix of A or not
static bool checkprefix(int A, int B)
{
  
    // Convert numbers into Strings
    String s1 = A.ToString();
    String s2 = B.ToString();
  
    // Find the lengths of Strings
    // s1 and s2
    int n1 = s1.Length;
    int n2 = s2.Length;
  
    // Base Case
    if (n1 < n2)
    {
        return false;
    }
  
    // Traverse the Strings s1 & s2
    for(int i = 0; i < n2; i++) 
    {
  
        // If at any index characters
        // are unequals then return false
        if (s1[i] != s2[i])
        {
            return false;
        }
    }
  
    // Return true
    return true;
}
  
// Driver Code
static public void Main ()
{
      
    // Given numbers
    int A = 12345, B = 12;
  
    // Function call
    bool result = checkprefix(A, B);
  
    // If B is a prefix of A, then
    // print "Yes"
    if (result) 
    {
        Console.Write("Yes");
    }
    else 
    {
        Console.Write("No");
    }
}
}
  
// This code is contributed by shubhamsingh10

chevron_right


Output: 

Yes

Using in-built function: Using inbuilt function std::boost::algorithm::starts_with(), it can be checked whether any string contains prefix of another string or not.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for the above approach
#include <bits/stdc++.h>
#include <boost/algorithm/string.hpp>
using namespace std;
  
// Function to check if B is a
// prefix of A or not
void checkprefix(int A, int B)
{
  
    // Convert numbers into strings
    string s1 = to_string(A);
    string s2 = to_string(B);
  
    bool result;
  
    // Check if s2 is a prefix of s1
    // or not using starts_with() function
    result = boost::algorithm::starts_with(s1, s2);
  
    // If result is true, print "Yes"
    if (result) {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
}
  
// Driver Code
int main()
{
    // Given numbers
    int A = 12345, B = 12;
  
    // Function Call
    checkprefix(A, B);
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program for the above approach
class GFG{
  
// Function to check if B is a
// prefix of A or not
static void checkprefix(int A, int B)
{
  
    // Convert numbers into Strings
    String s1 = String.valueOf(A);
    String s2 = String.valueOf(B);
  
    boolean result;
  
    // Check if s2 is a prefix of s1
    // or not using starts_with() function
    result = s1.startsWith(s2);
  
    // If result is true, print "Yes"
    if (result)
    {
        System.out.print("Yes");
    }
    else
    {
        System.out.print("No");
    }
}
  
// Driver Code
public static void main(String[] args)
{
      
    // Given numbers
    int A = 12345, B = 12;
  
    // Function call
    checkprefix(A, B);
}
}
  
// This code is contributed by amal kumar choubey

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program for the
# above approach
  
# Function to check if B is 
# a prefix of A or not
def checkprefix(A, B):
      
    # Convert numbers into strings
    s1 = str(A)
    s2 = str(B)
      
    # Check if s2 is a prefix of s1
    # or not using startswith() function
    result = s1.startswith(s2)
      
    # If result is true print Yes
    if result:
        print("Yes")
    else:
        print("No")
  
# Driver code
if __name__=='__main__':
      
    # Given numbers
    A = 12345
    B = 12
      
    # Function call
    checkprefix(A, B)
      
# This code is contributed by virusbuddah_

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program for the above approach 
using System.Threading; 
using System.Globalization; 
using System; 
  
class GFG{
      
// Function to check if B is a 
// prefix of A or not 
static void checkprefix(int A, int B) 
  
    // Convert numbers into Strings 
    string s1 = A.ToString();
    string s2 = B.ToString();
  
    bool result; 
  
    // Check if s2 is a prefix of s1 
    // or not using starts_with() function 
    result = s1.StartsWith(s2, false
        CultureInfo.InvariantCulture); 
  
    // If result is true, print "Yes" 
    if (result) 
    
        Console.Write("Yes");
    
    else
    
        Console.Write("No"); 
    
  
// Driver code
static void Main()
{
      
    // Given numbers 
    int A = 12345, B = 12; 
      
    // Function call 
    checkprefix(A, B); 
}
}
  
// This code is contributed by divyeshrabadiya07

chevron_right


Output: 

Yes

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.