Google Interview Question
SDE1sCountry: United States
private int randomPrime(int min, int max) {
int random = (int) (Math.random() * max);
if(random < min) {
random = randomPrime(min, max);
}
if(!isPrime(random)) {
random = randomPrime(min, max);
}
return random;
}
private boolean isPrime(int random) {
boolean isPrime = !(random % 2 == 0);
if(!isPrime) {
return false;
} else {
for(int i = 3; i*i < random; i++) {
if(random % i == 0) {
return false;
} else {
isPrime = true;
}
}
}
return isPrime;
}
public class RandomPrimeNumbers {
// generate randmon prime number betweeb min and max
public static void main(String args[]) {
int min = 1;
int max = 11;
List<Integer> list = new ArrayList<>();
for(int i =min; i<=max; i++) { // O(max)
if(i != 1 && isPrime(i)) {
System.out.println(i);
list.add(i);
}
}
Random r = new Random(System.nanoTime());
System.out.println("Randmon prime :"+ list.get(r.nextInt(list.size())));
}
private static boolean isPrime(int n) {
for(int i = 2; i*i<=n;i++){ // this O(sqrt(n)) time complexity
if(n%i == 0)
return false;
}
return true;
}
}
public class RandomPrimeNumbers {
// generate randmon prime number betweeb min and max
public static void main(String args[]) {
int min = 1;
int max = 11;
List<Integer> list = new ArrayList<>();
for(int i =min; i<=max; i++) { // O(max)
if(i != 1 && isPrime(i)) {
System.out.println(i);
list.add(i);
}
}
Random r = new Random(System.nanoTime());
System.out.println("Randmon prime :"+ list.get(r.nextInt(list.size())));
}
private static boolean isPrime(int n) {
for(int i = 2; i*i<=n;i++){ // this O(sqrt(n)) time complexity
if(n%i == 0)
return false;
}
return true;
}
}
public class RandomPrimeNumbers {
// generate randmon prime number betweeb min and max
public static void main(String args[]) {
int min = 1;
int max = 11;
List<Integer> list = new ArrayList<>();
for(int i =min; i<=max; i++) { // O(max)
if(i != 1 && isPrime(i)) {
System.out.println(i);
list.add(i);
}
}
Random r = new Random(System.nanoTime());
System.out.println("Randmon prime :"+ list.get(r.nextInt(list.size())));
}
private static boolean isPrime(int n) {
for(int i = 2; i*i<=n;i++){ // this O(sqrt(n)) time complexity
if(n%i == 0)
return false;
}
return true;
}
}
here is some code with python
# write a function that randomly return a random prime
# number in range [min, max)
# public int getRandom (int min, int max){}
# April 2017
import random
def getRandom(min, max):
if min > 1:
rangeRover = random.randint(min, max)
for i in range(min,max):
if rangeRover % i == 0:
return False
else:
return rangeRover
else:
return False
print('my random numbers based on given range', getRandom(12,407))
Using sieve of erotospenes, complexity O(nloglogn):
- Marcello Ghali April 28, 2017