/**
 * Generate Valid CC numbers.
 * 
 * @author (CIS260) 
 * @version (2010.11.02)
 */
import java.util.Scanner;


public class GenCC
{

    public static void main(String args[])
    {
        CCvalidate cis260val = new CCvalidate();
        
        Scanner input = new Scanner(System.in);
        
        System.out.print("Generate CC Numbers\n\n");
        long userprefix;
        do {
            System.out.print("Enter Prefix: ");
            userprefix = input.nextLong();        
        
        }while ( !CCvalidate.prefixMatched(userprefix,0) );
        
        System.out.print("Length of CC number: ");
        int numdigits = input.nextInt();
        
        System.out.print("How Many CC Numbers to generate: ");
        int num2gen = input.nextInt();
        
        // Generate starting number
        long startnum;
        int  shiftdigits = numdigits - CCvalidate.getSize( userprefix );
        long multiplier = 1;
        
        for (; shiftdigits > 0; shiftdigits--)
            multiplier *= 10;
            
        startnum = userprefix * multiplier;
        startnum += ( multiplier * Math.random() );
        
        long usernumber = startnum;
        
        while(num2gen>0)
        {
            if (CCvalidate.isValid(usernumber) )
            {
                System.out.println( usernumber );
                num2gen--;    
            }
//            else 
//                System.out.println( usernumber + " is NO good");
            usernumber++; // brute force, Try Em All!
            
        }
    }
}