You are on page 1of 3

# Problem 0: Gold Coins

The king pays his loyal knight in gold coins. On the first day of his service, the knight receives one gold coin. On each of the next two days (the second and third days of service), the knight receives two gold coins. On each of the next three days (the fourth, fifth, and sixth days of service), the knight receives three gold coins. On each of the next four days (the seventh, eighth, ninth, and tenth days of service), the knight receives four gold coins. This pattern of payments will continue indefinitely: after receiving N gold coins on each of N consecutive days, the knight will receive N+1 gold coins on each of the next N+1 consecutive days, where N is any positive integer. Your program will determine the total number of gold coins paid to the knight in any given number of days (starting from Day 1).

Input
The input file contains at least one, but no more than 21 lines. Each line of the input file (except the last one) contains data for one test case of the problem, consisting of exactly one integer (in the range 1..10000), representing the number of days. The end of the input is signaled by a line containing the number 0.

Output
There is exactly one line of output for each test case. This line contains the number of days from the corresponding line of input, followed by one blank space and the total number of gold coins paid to the knight in the given number of days, starting with Day 1.

Program Mechanics
  

Your program will accept one command line argument: the name of the input file. The input file will have a file extension of .dat. Your program will produce an output file that has the same name as the input file but with a file extension of .out.

Thus, if your program is passed the input file prob0.dat, your program will produce the output file prob0.out.

Sample input
10 6 7 11 15

16 100 10000 1000 21 22 0

Sample Output
10 30 6 14 7 18 11 35 15 55 16 61 100 945 10000 942820 1000 29820 21 91 22 98

Problem 1: Divisibility by 13
Permuting a number so that it is divisible by 13

Description
Most numbers are not divisible by 13. For this problem, we say 13 divides t if t = 13k for some integer k. But, if we allow you to permute the digits of a number t (as written in decimal), perhaps you can get 13 to divide t. For example, 13 does not divide 1331, but it clearly divides 1313, a permutation of 1331.

Input
An input file will contain a list of positive integers, one per line. Each integer will be no more than nine (9) decimal digits long. The list will end with the number 0, which should not be processed. An example input file might look like this:
4 13

8220 13131 58403 120000000 0

Output
For each input value (except '0'), your program should output all permutations that are a multiple of 13, sorted smallest to largest. Output each number only once. If there are no solutions, output the string No Solutions. on a single line by itself. After handling one line of input, output a blank line. Here is the output that would be produced for the input file shown above:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 01234567890123456789 No Solutions. 13 2028 33111 03458 30485 34580 35048 48035 48503 50843 84305 No Solutions.

NOTE: The lines numbers (XX ) and the header line ( 01234567890123456789) in the output file above are included for your reference only... they should not appear in the output file produced by your program.