- This one passes through CodeChef's judge in 8.36 seconds, still 2.36 seconds slower than it should.
import java.util.*;import java.io.*;
public class Main {
/** * @param args the command line arguments */ static LinkedHashSet<Integer> primes = new LinkedHashSet<Integer>();
public static void main(String[] args) throws Exception{ //for(int i = 2; i<100000; i++) // if(isPrime(i)) // primes.add(i);
BufferedReader k = new BufferedReader(new InputStreamReader(System.in));
int m = Integer.parseInt(k.readLine());
for(int i =1; i<=m; i++){ if(i!=1) System.out.println("\n");
StringTokenizer st = new StringTokenizer(k.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
boolean first = true;
for(int j = a; j<=b; j++ ){ if(isPrime(j)){ primes.add(j);
if(first){ first=false;
System.out.print(j);
} else System.out.print("\n"+j);
} } }
} static boolean isPrime(int n){ if(n<2) return false;
double d = Math.sqrt(n);
for(Integer p: primes){ if(p>d) break;
if(n%p==0)
return false;
} return true;
}
}
Sunday, May 15, 2011
Prime Generator v2- runs in CodeChef
Saturday, May 14, 2011
SPOJ's Prime Generator - Time Limit Exceeded
Well, I must rethink this...
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
/**
*
* @author antonio
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException{
// TODO code application logic here
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cases = Integer.parseInt(br.readLine());
BigInteger lower;
BigInteger upper;
BigInteger intermediate;
for (int i=0; i<cases; i++){
String [] splitted = br.readLine().split(" ");
lower = new BigInteger(splitted[0]);
if (lower.isProbablePrime(100)){
System.out.println(splitted[0]);
}
upper = new BigInteger(splitted[1]);
intermediate = lower.nextProbablePrime();
while(intermediate.compareTo(upper)<=0){
System.out.println(intermediate);
intermediate = intermediate.nextProbablePrime();
}
System.out.println(" ");
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
/**
*
* @author antonio
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws IOException{
// TODO code application logic here
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int cases = Integer.parseInt(br.readLine());
BigInteger lower;
BigInteger upper;
BigInteger intermediate;
for (int i=0; i<cases; i++){
String [] splitted = br.readLine().split(" ");
lower = new BigInteger(splitted[0]);
if (lower.isProbablePrime(100)){
System.out.println(splitted[0]);
}
upper = new BigInteger(splitted[1]);
intermediate = lower.nextProbablePrime();
while(intermediate.compareTo(upper)<=0){
System.out.println(intermediate);
intermediate = intermediate.nextProbablePrime();
}
System.out.println(" ");
}
}
}
Subscribe to:
Comments (Atom)