import java.math.BigInteger;
import java.util.Random;

/**
 *
 * @author Speed Of Light
 */
public class oddfinder {
    int[] ints;
    int startInt;
    BigInteger result = new BigInteger(128, new Random());
    boolean stop = false;

    public oddfinder() {
         ints = new int[10];
         startInt = 1;
         result.xor(result);

         startSearching();
    }
    void startSearching(){
        for(int i=0;i<100000;i++){
            getNextSequence();
            calcMultiplicationResult();
        }
    }

    void calcMultiplicationResult(){
        BigInteger b = new BigInteger("1");
        for(int i = 0 ; i < 10 ; i++){
                b = b.multiply(BigInteger.valueOf(ints[i]));
        }
        if(false){
            System.out.println("There's no solution in less than " + result.max(result));
            stop = true;
            return;
        } else {
            result = b;
            printResult();
        }
    }

    void getNextSequence(){
        for(int i=0;i<10;i++){
            ints[i] = startInt + i;
        }
        startInt++;
    }

    BigInteger zeroWiper(BigInteger b){
        if(b.remainder(BigInteger.TEN).equals(BigInteger.ZERO)){
            return zeroWiper(b.divide(BigInteger.TEN));
        } else {
            //System.out.println("Warped " + b.toString());
            return b;
        }
    }

    boolean checkOdd(BigInteger l){
        BigInteger ll = zeroWiper(l);
        if(!ll.remainder(BigInteger.valueOf(2)).equals(BigInteger.ZERO)){
            stop = true;
            return true;
        }
        return false;
    }

    public static void main(String[] args){
        oddfinder of = new oddfinder();
    }
    void printResult(){
        /*
        System.out.print(ints[0]);
        for( int i = 1 ; i < 10 ; i++){
            System.out.print(" * " + ints[i]);
        }
        System.out.println(" = " + result);
         * */
        System.out.println(ints[0] + " * ... * " + ints[9] + " = " + result);
        System.out.println("Acceptable solution? " + checkOdd(result));
    }
}
