 多面体的可见表面用数组的存储，怎么用C语言的程序的代码的编写的方式加以实现

Problem Description
Look up the picture A , the big wood is cut into many small ones. As we know, a cuboid has three attributes: Length, Width and Height. In the picture B, C, D, there are different. The problem is so easy that you just need to count the kinds of the cuboids which can be cut from the big one. When we cut the big one into so many small one, we give every one a number to mark which is 1×1×1. Look at the picture B and C, they have the same length, width and height, but the marking numbers they have are different from each other, so B is different from C. B and D have the different attributes (any one attribute of the length, width and height is different), so they are also different.
Input
Many data cases come. In each case, there are three positive integers L, W, H, which are the length, the width and the height of the LWH. When L, W and H are all 1, the input is over, and you haven’t to handle them.Output
For each case, you should print the number of any kinds of cuboids you can cut from the original big one, and any two ones must be of difference. And you have to make sure the length and the width and the height of the small one you cut are all integers. You can assume the final result will be in the range of the 32integer, for that you can calculate it easily.Sample Input
5 3 4
2 2 2
1 1 2
1 1 1Sample Output
900
27
3