In the previous article, we have discussed Python Program for Array/List Elements that Appear More than Once
Given the number N, prime number k and the task is to find the square root of the given number under modulo k(When k is in form of 4*i + 3). Here i is an integer.
Examples:
Example1:
Input:
Given prime number k=5 Given Number = 4
Output:
The Square root of the given number{ 4 } under modulo k= 2Example2:
Input:
Given prime number k=3 Given Number = 5
Output:
No, we cannot find the square root for a given number
Program to Find Square Root Under Modulo k (When k is in Form of 4*i + 3) in Python
Below are the ways to find the square root of the given number under modulo k (When k is in form of 4*i + 3) in python:
Method #1: Using For Loop (Static Input)
Approach:
- Give the prime number k as static input and store it in a variable.
- Give the number as static input and store it in another variable.
- Pass the given number and k as the arguments to the sqrt_undermodk function.
- Create a function to say sqrt_undermodk which takes the given number and k as the arguments and returns the square root of the given number under modulo k (When k is in form of 4*i + 3).
- Calculate the value of the given number modulus k and store it in the same variable given number.
- Loop from 2 to the given k value using the for loop.
- Multiply the iterator value with itself and store it in another variable.
- Check if the above result modulus k is equal to the given number using the if conditional statement.
- If it is true then print the iterator value.
- Return and exit the for loop.
- Print “No, we cannot find the square root for a given number”.
- The Exit of the Program.
Below is the implementation:
# Create a function to say sqrt_undermodk which takes the given number and k as
# the arguments and returns the square root of the given number under modulo k
# (When k is in form of 4*i + 3).
def sqrt_undermodk(gvn_numb, k):
# Calculate the value of the given number modulus k and store it in the same variable
# given number.
gvn_numb = gvn_numb % k
# Loop from 2 to the given k value using the for loop.
for itror in range(2, k):
# Multiply the iterator value with itself and store it in another variable.
mul = (itror * itror)
# Check if the above result modulus k is equal to the given number using the if
# conditional statement.
if (mul % k == gvn_numb):
# If it is true then print the iterator value.
print(
"The Square root of the given number{", gvn_numb, "} under modulo k=", itror)
# Return and exit the for loop.
return
# Print "No, we cannot find the square root for a given number".
print("No, we cannot find the square root for a given number")
# Give the prime number k as static input and store it in a variable.
k = 5
# Give the number as static input and store it in another variable.
gvn_numb = 4
# Pass the given number and k as the arguments to the sqrt_undermodk function.
sqrt_undermodk(gvn_numb, k)
Output:
The Square root of the given number{ 4 } under modulo k= 2Method #2: Using For loop (User Input)
Approach:
- Give the prime number k as user input using the int(input()) function and store it in a variable.
- Give the number as user input using the int(input()) function and store it in another variable.
- Pass the given number and k as the arguments to the sqrt_undermodk function.
- Create a function to say sqrt_undermodk which takes the given number and k as the arguments and returns the square root of the given number under modulo k (When k is in form of 4*i + 3).
- Calculate the value of the given number modulus k and store it in the same variable given number.
- Loop from 2 to the given k value using the for loop.
- Multiply the iterator value with itself and store it in another variable.
- Check if the above result modulus k is equal to the given number using the if conditional statement.
- If it is true then print the iterator value.
- Return and exit the for loop.
- Print “No, we cannot find the square root for a given number”.
- The Exit of the Program.
Below is the implementation:
# Create a function to say sqrt_undermodk which takes the given number and k as
# the arguments and returns the square root of the given number under modulo k
# (When k is in form of 4*i + 3).
def sqrt_undermodk(gvn_numb, k):
# Calculate the value of the given number modulus k and store it in the same variable
# given number.
gvn_numb = gvn_numb % k
# Loop from 2 to the given k value using the for loop.
for itror in range(2, k):
# Multiply the iterator value with itself and store it in another variable.
mul = (itror * itror)
# Check if the above result modulus k is equal to the given number using the if
# conditional statement.
if (mul % k == gvn_numb):
# If it is true then print the iterator value.
print(
"The Square root of the given number{", gvn_numb, "} under modulo k=", itror)
# Return and exit the for loop.
return
# Print "No, we cannot find the square root for a given number".
print("No, we cannot find the square root for a given number")
# Give the prime number k as user input using the int(input()) function and
# store it in a variable.
k = int(input("Enter some random number = "))
# Give the number as user input using the int(input()) function and
# store it in another variable.
gvn_numb = int(input("Enter some random number = "))
# Pass the given number and k as the arguments to the sqrt_undermodk function.
sqrt_undermodk(gvn_numb, k)
Output:
Enter some random number = 7
Enter some random number = 2
The Square root of the given number{ 2 } under modulo k= 3Find a comprehensive collection of Examples of Python Programs ranging from simple ones to complex ones to guide you throughout your coding journey.
