The following function is a part of some class. Assume ‘x’ and ‘y’ are positive
integers, greater than 0. Answer the given questions along with dry run / working.
void someFun(int x, int y)
{
if(x>1)
{
if(x%y==0)
{
System.out.print(y+“ ”);
someFun(x/y, y);
}
else
someFun(x, y+1);
}
}
(i) What will be returned bysomeFun(24,2)?
(ii) What will be returned bysomeFun(84,2)?
(iii) State in one line what does the function someFun( )do, apart from recursion?
(i) someFun(24, 2)
24>1 true 24%2==0 true output 2
someFun(24/2, 2)
12>1 true 12%2==0 true output 2
someFun(12/2, 2)
6>1 true 6%2==0 true output 2
someFun(6/2, 2)
3>1 true 3%2==0 false call someFun(3, 3)
someFun(3, 3)
3>1 true 3%3==0 true output 3
someFun(3/3, 3) 1>1 false
OUTPUT: 2 2 2 3
(ii)someFun(84, 2)
84>1 true 84%2==0 true output 2
someFun(42/2, 2)
42>1 true 42%2==0 true output 2
someFun(42/2, 2)
21>1 true 21%2==0 false call someFun(21, 3)
someFun(21, 3)
21>1 true 21%3==0 true output 3
someFun(7/3, 3)
7>1 true 7%3==0 false call someFun(7, 4)
someFun(7, 4)
7>1 true 7%4==0 false call someFun(7, 5)
someFun(7, 5)
7>1 true 7%5==0 false call someFun(7, 6)
someFun(7, 6)
7>1 true 7%6==0 false call someFun(7, 7)
someFun(7, 7)
7>1 true 7%7==0 true output 7
SomeFun(7/7, 7) 1>1 false
OUTPUT: 2 2 3 7
(iii) Generating Prime factors.
(i) someFun(24, 2)
24>1 true 24%2==0 true output 2
someFun(24/2, 2)
12>1 true 12%2==0 true output 2
someFun(12/2, 2)
6>1 true 6%2==0 true output 2
someFun(6/2, 2)
3>1 true 3%2==0 false call someFun(3, 3)
someFun(3, 3)
3>1 true 3%3==0 true output 3
someFun(3/3, 3) 1>1 false
OUTPUT: 2 2 2 3
(ii)someFun(84, 2)
84>1 true 84%2==0 true output 2
someFun(42/2, 2)
42>1 true 42%2==0 true output 2
someFun(42/2, 2)
21>1 true 21%2==0 false call someFun(21, 3)
someFun(21, 3)
21>1 true 21%3==0 true output 3
someFun(7/3, 3)
7>1 true 7%3==0 false call someFun(7, 4)
someFun(7, 4)
7>1 true 7%4==0 false call someFun(7, 5)
someFun(7, 5)
7>1 true 7%5==0 false call someFun(7, 6)
someFun(7, 6)
7>1 true 7%6==0 false call someFun(7, 7)
someFun(7, 7)
7>1 true 7%7==0 true output 7
SomeFun(7/7, 7) 1>1 false
OUTPUT: 2 2 3 7
(iii) Generating Prime factors.