Apple interview question

Write a recursive function to determine prime number

Interview Answers

Anonymous

28 June 2012

#include #include int isPrime(int x, int d) { if (d == 1) return 1; if (!(x % d)) return 0; return isPrime(x, d-1); } main(int ac, char **av) { if (ac != 2) exit(1); printf("%d\n", isPrime(atoi(av[1]), (int) sqrt(atoi(av[1])))); }

10

Anonymous

28 June 2012

Better: #include #include int isPrime(int x, int d) { if (d == 1) return 1; if (!(x % d)) return 0; return isPrime(x, d-2); } main(int ac, char **av) { int x; if (ac != 2) exit(1); x = atoi(av[1]); if (!(x & 1)) printf("0\n"); else printf("%d\n", isPrime(x, (int) sqrt(x) | 1)); }

1

Anonymous

19 Nov 2014

boolean isPrime(int start, int n) { if(start <= Math.sqrt(n)){ if ( n % start == 0 ) return false; else return isPrime(start+1, n); } return false; }

Anonymous

18 Jan 2015

public boolean isPrime(int n) { if(nMath.sqrt(n)) { return true; } if(n%i==0) { return false; } return isPrime(n,++i); }

1

Anonymous

15 Nov 2018

def primechecker(a): if a == 1: return "Not Prime" elif a== 2: return "Prime" elif a > 2: counter = round(a/2) def primeverify(i, counter): if counter == 1: return "Prime" elif counter!= 1 and a%counter == 0: return "Not Prime" else: return primeverify(i, counter-1) return primeverify(a, counter) else: return "Input is non-positive." print(primechecker(101))

Anonymous

19 Nov 2014

boolean isPrime(int start, int n){ }

Anonymous

14 Apr 2012

boolean isPrime ( int n ) { if(n==1 || n==2) return true; //if number can be divided by 2 then it is not prime if(n%2==0) return false; /* if number can be divided by any other number then it is not prime, it is incremented by 2 since we checked for even numbers already */ for(int i = 3; i < n ; i=i+2){ if(n%i == 0) return false; } return true; }

3