Question: Sub - Algorithm: Find _ Square ( n , m ) Requires: positive intergers ( n , m ) Returns: square root of a perfect

Sub-Algorithm: Find_Square(n,m)
Requires: positive intergers (n,m)
Returns: square root of a perfect square number without using the square root function
if m*m == n
Return m
Elseif m*m > n
Return -1
Else
Return Find_Square(n,m +1)
Algorithm: NoSquarelist(n)
Requires: a positive interger (n)
Returns: a list consisting of all integers less than n that are not perfect squares
Let n= createlist_i-j(1, n)
Return NoSquarelisthelper(list)
Sub-Algorithm: createlist_i-j(i, j)
Requires: positive intergers
Returns: a list from i to j
If i>j
Return x
Else
Return cons(i,(tail(createlist_i-j(i+1,j)
Let X= cons(list)
Sub-Algorithm: NoSquarelisthelper(list)
Requires: non empty list
Returns: a list consisting of all integers that are not perfect squares
If isEmpty(list)
Return nil
Let x = Find_Square(value(list),1)
If x !=-1 && x * x == value(list)//Perfect square case
Return NoSquarelisthelper(delNth(1, list))//Skip the element
Else //Not a perfect square
Return cons(value(list), NoSquarelisthelper(nil)//Retain the element
Value(List) returns the first element of a list
delNth(n, list) returns a list with the nth element deleted

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!