I have a practice problem that asks to provide the runtime f

I have a practice problem that asks to provide the runtime for the following algorithm.

public static boolean isPrime ( int N) {

if (N< 2) return false;
for (int i = 2; ii <= N; i++)

if (N% i == 0) return false; return true ;

}

I attempted to answer the question by summing the steps within the inner loop which gave me 5 steps. So f(n) ~f(n). To prove this I calculated g(n) / f(n) which is 5N/N. Dropping the constant 5, we\'re left with N/N which gives us 1.

Can someone verfiy if my answer is correct, and if not provide some steps that I should have taken. Thanks.

Solution

public static boolean isPrime ( int N) {

1.   if (N< 2) // takes O(1)
       return false;

2.   for (int i = 2; ii <= N; i++)
       if (N% i == 0)
           return false;
       return true ;
}

Here I divided code in two block:
   Block 1 : it is base case takes constant time: O(1)

   Block 2:
       here we have a \'for\' loop
       Number of times loop executes:
               If you observe then you can see that for loop executes till :
                   i*i <= N
                   => i <= N
               So, loop execute N times
               So, it takes O(N) time

Overall: O(n)

I have a practice problem that asks to provide the runtime for the following algorithm. public static boolean isPrime ( int N) { if (N< 2) return false; for

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site