Pages

Sunday 9 September 2012

UVA - 10200 - Prime Time


import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int primes[] = new int[10 * 1000 + 1];
        int counter = 0;
        for (int i = 0; i < primes.length; i++) {
            if (isPrime((i * i) + i + 41)) {
                counter++;
            }
            primes[i] = counter;
        }
        int cases=0;
        while (s.hasNext()) {
            int a = s.nextInt();
            int b = s.nextInt();
            float counterA =0;
            if(a!=0 && primes[a]-primes[a-1]!=1)
                counterA= primes[b]-primes[a];
            else{
                counterA= primes[b]-primes[a]+1;
            }
            float temp = counterA * 100 / (b - a + 1);
            System.out.printf("%.2f", temp);
            System.out.println();
            cases++;
        }

    }

    static boolean isPrime(int x) {
        for (int i = 2; i < Math.sqrt(x) + 1; i++) {
            if (x % i == 0) {
                return false;
            }
        }
        return true;
    }
}

No comments:

Post a Comment