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.