How to express $2012$ in terms of three consecutive primes? 
How to express $2012$ in terms of three consecutive primes
if you can use each prime number only once ?

Source of this problem you can find on this page .
Closest number to the $2012$ which I managed to express is :$2036$
$2036=509\cdot(503-499)$
P.S.
You can use only elementary operations .
 A: As Thomas has pointed out, if only the four basic arithmetic operations are allowed, then we can't use division: The division can't be the first operation, since there would be no way to get back to an integer afterwards; and it can't be the second operation, since that wouldn't yield an integer if the first operation was multiplication and wouldn't yield $2012$ if the first operation was additive, by Bertrand's postulate.
The two operations can't both be additive because the result would be an odd number. They can also not both be multiplications, since $2012=4\cdot503$, which isn't the product of three consecutive primes. Thus we must have one multiplication and one additive operation. The multiplication must come first since otherwise it would have to be of the form $2\cdot 1006$ or $4\cdot503$, and $1006$ cannot be generated from $3$ and $5$ and $4$ cannot be generated from primes consecutive with $503$. Thus the representation would have to be of the form $pq\pm r$. Again by Bertrand's postulate it suffices to check primes below $2012$.
The following code checks that there is no solution of this form:
import java.util.Random;
import java.util.Arrays;

public class Question100122 {
    final static int target = 2012;
    final static int n = target;
    static boolean [] prime = new boolean [n / 2]; // prime [i] : is 2i + 1 prime?                                                                                                                                                                                

    public static void main (String [] args) {
        Arrays.fill (prime,true);

        // calculate the primes we need                                                                                                                                                                                                                           
        int limit = (int) Math.sqrt (n); // highest factor to test                                                                                                                                                                                                
        for (int p = 3;p <= limit;p += 2) // loop over odd integers                                                                                                                                                                                               
            if (prime [p >> 1])            // only test primes p                                                                                                                                                                                                  
                for (int k = 3*p;k < n;k += 2*p) // loop over odd multiples of p                                                                                                                                                                                  
            prime [k >> 1] = false;      // sieve them out                                                                                                                                                                                            

        // extract them into an array
        int nprimes = 0;
        int [] primes = new int [prime.length];
        primes [nprimes++] = 2;
        for (int p = 3;p >> 1 < prime.length;p += 2)
            if (prime [p >> 1])
                primes [nprimes++] = p;

        // check all expressions of the form pq +- r
        for (int np = 0;np < nprimes - 2;np++)
            for (int i1 = 0;i1 < 3;i1++)
                for (int i2 = 0;i2 < 3;i2++)
                    if (i2 != i1) {
                        int i3 = 3 - i1 - i2;
                        int v1 = primes [np + i1];
                        int v2 = primes [np + i2];
                        int v3 = primes [np + i3];
                        if (v1 * v2 + v3 == target)
                            System.out.printf ("%d * %d + %d = %d\n",v1,v2,v3,target);
                        else if (v1 * v2 - v3 == target)
                            System.out.printf ("%d * %d - %d = %d\n",v1,v2,v3,target);
                    }
    }
}

