COCI '08 Contest 5 #2 Jabuka
View as PDFMirko has  red and 
 green apples to share with some of his friends, so that all of them receive the
same number of red apples and also the same number of green apples. Mirko does not like apples
himself so he doesn't want to be left with any apples afterward.
For example, if Mirko has  red and 
 green apples, he can divide them in three ways:
- One friend gets all 
red and all
green apples;
 - Two friends each receive 
red apples and
green apples;
 - Four friends each receive 
red and
green apples.
 
Write a program that outputs all ways for Mirko to divide his apples. Assume Mirko has an infinite supply of friends to give apples to.
Input Specification
The first line contains two positive integers  and 
 separated by a space 
,
the numbers of red and green apples.
Output Specification
For each possible distribution, output three integers , 
 and 
 on one line. The number 
 is the
number of friends that will receive apples. The numbers 
 and 
 tell how many red and green apples
each of them will receive.
Each distribution needs to be output exactly once. You may output the distributions in any order.
Sample Input 1
4 8
Sample Output 1
1 4 8
2 2 4
4 1 2
Sample Input 2
15 12
Sample Output 2
3 5 4
1 15 12
Sample Input 3
42 105
Sample Output 3
1 42 105
3 14 35
7 6 15
21 2 5
Comments
"Assume that Mirko has an infinite supply of friends." Damn must be one cool kid man.