In the previous article, we have discussed Python Program for Modular Multiplicative Inverse from 1 to n
Given two numbers a, b and the task is to find all x such that given a % x = b
Examples:
Example1:
Input:
Given a value = 21 Given b value = 5
Output:
The value of x such that given a%x==b {a,b = 21 5 } = 2
Explanation:
Here the values of x which satisfy a%x=b are 8,16 because 21%8=5 ,21%16=5. so total number of possible x are 8,16 i.e 2 values
Example2:
Input:
Given a value = 35 Given b value = 8
Output:
The value of x such that given a%x==b {a,b = 35 8 } = 2
- Python Program for Area of a Polygon with Given n Ordered Vertices
- Python Program to Find the Sum of Series 1+X+X^2/2…+X^N/N
- Python Program to Find the Sum of the Series: 1 + x^2/2 + x^3/3 + … x^n/n
Program for Given two Numbers a and b Find all x Such that a % x = b in Python
Below are the ways to find all x such that given a % x = b in python:
Method #1: Using For Loop (Static Input)
Approach:
- Import the math module using the import keyword.
- Give the number as static input and store it in a variable.
- Give the other number as static input and store it in another variable.
- Pass the given number two numbers as the arguments to the a_mod_xisb function.
- Create a function to say a_mod_xisb which takes the given two numbers as the arguments and returns all the values of x such that given a % x = b.
- Check if the given number a is less than the given b value using the if conditional statement.
- If it is true then print “There are no solutions possible”.
- Return.
- Check if the given a value is equal to the given b value using the if conditional statement.
- If it is true then print “Infinite Solutions are possible for the equation”.
- Return.
- Take a variable say cnt and initialize its value to 0.
- Subtract the given b value from the given a value and store it in another variable say rslt.
- Calculate the value of square root of (gvn_a_val – gvn_b_val) using the math.sqrt() function and convert result to an integer using the int() function.
- Store it in another variable say k.
- Loop from 1 to the above result k using the for loop.
- Inside the loop, check if the above value of rslt modulus iterator value is equal to 0 using the if conditional statement.
- Again check if the rslt divided by the iterator value greater than the given b value using the if conditional statement.
- If it is true, increment the count value by 1 and store it in the same variable.
- Check if the iterator value is greater than the given b value using the if conditional statement.
- If it is true, increment the count value by 1 and store it in the same variable.
- Check if the k multiplied with itself is equal to the rslt and k greater than the given b value using the if conditional statement.
- If it is true, decrement the count value by 1 and store it in the same variable.
- Print the value of x such that given a%x==b.
- The Exit of the Program.
Below is the implementation:
# Import the math module using the import keyword. import math # Create a function to say a_mod_xisb which takes the given two numbers as the arguments # and returns all the values of x such that given a % x = b. def a_mod_xisb(gvn_a_val, gvn_b_val): # Check if the given number a is less than the given b value using the if conditional # statement. if (gvn_a_val < gvn_b_val): # If it is true then print "There are no solutions possible". print("There are no solutions possible") # Return. return # Check if the given a value is equal to the given b value using the if conditional # statement. if (gvn_a_val == gvn_b_val): # If it is true then print "Infinite Solutions are possible for the equation". # Return. print("Infinite Solutions are possible for the equation") return # Take a variable say cnt and initialize its value to 0. cnt = 0 # Subtract the given b value from the given a value and store it in another variable # say rslt. rslt = gvn_a_val - gvn_b_val # Calculate the value of square root of (gvn_a_val - gvn_b_val) using the math.sqrt() # function and convert result to an integer using the int() function. # Store it in another variable say k. k = (int)(math.sqrt(gvn_a_val - gvn_b_val)) # Loop from 1 to the above result k using the for loop. for itr in range(1, k+1): # Inside the loop, check if the above value of rslt modulus iterator value is equal # to 0 using the if conditional statement. if (rslt % itr == 0): # Again check if the rslt divided by the iterator value greater than the given b value # using the if conditional statement. if (rslt / itr > gvn_b_val): # If it is true, increment the count value by 1 and store it in the same variable. cnt = cnt + 1 # Check if the iterator value is greater than the given b value using the if # conditional statement. if (itr > gvn_b_val): # If it is true, increment the count value by 1 and store it in the same variable. cnt = cnt + 1 # Check if the k multiplied with itself is equal to the rslt and k greater than the # given b value using the if conditional statement. if (k * k == rslt and k > gvn_b_val): # If it is true, decrement the count value by 1 and store it in the same variable. cnt = cnt - 1 # Print the value of x such that given a%x==b. print( "The value of x such that given a%x==b {a,b =", gvn_a_val, gvn_b_val, "} = ", cnt) # Give the number as static input and store it in a variable. gvn_a_val = 15 # Give the other number as static input and store it in another variable. gvn_b_val = 2 # Pass the given number two numbers as the arguments to the a_mod_xisb function. a_mod_xisb(gvn_a_val, gvn_b_val)
Output:
The value of x such that given a%x==b {a,b = 15 2 } = 1
Method #2: Using For loop (User Input)
Approach:
- Import the math module using the import keyword.
- Give the number as user input using the int(input()) function and store it in a variable.
- Give the other number as user input using the int(input()) function and store it in another variable.
- Pass the given number two numbers as the arguments to the a_mod_xisb function.
- Create a function to say a_mod_xisb which takes the given two numbers as the arguments and returns all the values of x such that given a % x = b.
- Check if the given number a is less than the given b value using the if conditional statement.
- If it is true then print “There are no solutions possible”.
- Return.
- Check if the given a value is equal to the given b value using the if conditional statement.
- If it is true then print “Infinite Solutions are possible for the equation”.
- Return.
- Take a variable say cnt and initialize its value to 0.
- Subtract the given b value from the given a value and store it in another variable say rslt.
- Calculate the value of square root of (gvn_a_val – gvn_b_val) using the math.sqrt() function and convert result to an integer using the int() function.
- Store it in another variable say k.
- Loop from 1 to the above result k using the for loop.
- Inside the loop, check if the above value of rslt modulus iterator value is equal to 0 using the if conditional statement.
- Again check if the rslt divided by the iterator value greater than the given b value using the if conditional statement.
- If it is true, increment the count value by 1 and store it in the same variable.
- Check if the iterator value is greater than the given b value using the if conditional statement.
- If it is true, increment the count value by 1 and store it in the same variable.
- Check if the k multiplied with itself is equal to the rslt and k greater than the given b value using the if conditional statement.
- If it is true, decrement the count value by 1 and store it in the same variable.
- Print the value of x such that given a%x==b.
- The Exit of the Program.
Below is the implementation:
# Import the math module using the import keyword. import math # Create a function to say a_mod_xisb which takes the given two numbers as the arguments # and returns all the values of x such that given a % x = b. def a_mod_xisb(gvn_a_val, gvn_b_val): # Check if the given number a is less than the given b value using the if conditional # statement. if (gvn_a_val < gvn_b_val): # If it is true then print "There are no solutions possible". print("There are no solutions possible") # Return. return # Check if the given a value is equal to the given b value using the if conditional # statement. if (gvn_a_val == gvn_b_val): # If it is true then print "Infinite Solutions are possible for the equation". # Return. print("Infinite Solutions are possible for the equation") return # Take a variable say cnt and initialize its value to 0. cnt = 0 # Subtract the given b value from the given a value and store it in another variable # say rslt. rslt = gvn_a_val - gvn_b_val # Calculate the value of square root of (gvn_a_val - gvn_b_val) using the math.sqrt() # function and convert result to an integer using the int() function. # Store it in another variable say k. k = (int)(math.sqrt(gvn_a_val - gvn_b_val)) # Loop from 1 to the above result k using the for loop. for itr in range(1, k+1): # Inside the loop, check if the above value of rslt modulus iterator value is equal # to 0 using the if conditional statement. if (rslt % itr == 0): # Again check if the rslt divided by the iterator value greater than the given b value # using the if conditional statement. if (rslt / itr > gvn_b_val): # If it is true, increment the count value by 1 and store it in the same variable. cnt = cnt + 1 # Check if the iterator value is greater than the given b value using the if # conditional statement. if (itr > gvn_b_val): # If it is true, increment the count value by 1 and store it in the same variable. cnt = cnt + 1 # Check if the k multiplied with itself is equal to the rslt and k greater than the # given b value using the if conditional statement. if (k * k == rslt and k > gvn_b_val): # If it is true, decrement the count value by 1 and store it in the same variable. cnt = cnt - 1 # Print the value of x such that given a%x==b. print( "The value of x such that given a%x==b {a,b =", gvn_a_val, gvn_b_val, "} = ", cnt) # Give the number as user input using the int(input()) function and # store it in a variable. gvn_a_val = int(input("Enter some random number = ")) # Give the other number as user input using the int(input()) function and # store it in another variable. gvn_b_val = int(input("Enter some random number = ")) # Pass the given number two numbers as the arguments to the a_mod_xisb function. a_mod_xisb(gvn_a_val, gvn_b_val)
Output:
Enter some random number = 35 Enter some random number = 8 The value of x such that given a%x==b {a,b = 35 8 } = 2
Explore more Example Python Programs with output and explanation and practice them for your interviews, assignments and stand out from the rest of the crowd.