/******************************************************************************
 * Name:
 * NetID:
 * Precept:
 *
 * Description: This program takes a command-line argument N and prints a
 * table of the powers of 2 that are less than or equal to 2^N.
 *
 * Examples:
 * > java PowersOfTwo 5
 * 0 1
 * 1 2
 * 2 4
 * 3 8
 * 4 16
 * 5 32
 *
 * Remarks:
 * Only works if 0 <= N < 31, because 2^31 overflows an int.
 ******************************************************************************/

// TO DO: Convert this "while" loop to a "for" loop.

public class PowersOfTwo {
    public static void main(String[] args) {

        // read in one command-line argument
        int N = Integer.parseInt(args[0]);

        int i = 0;                // count from 0 to N
        int powerOfTwo = 1;       // the ith power of two

        // repeat until i equals N
        while (i <= N) {
            System.out.println(i + " " + powerOfTwo);   // print out the power of two
            powerOfTwo = 2 * powerOfTwo;                // double to get the next one
            i = i + 1;
        }
    }
}