求各位高手帮我这个程序
求一个这样的6位数,它乘2,3,4,5,6均是其原数中数字的不同组合,且还是6为数
提示:
(1) 确定该数的范围,因为该数在乘2,3,4,5,6后得到的积也为6位数,所以,该数最大应不超过:1000000/6=166667,因此可以在100000~166667范围内搜索;
(2) 进一步优化:由于这个数乘3为原来数字的组合,说明原来的数是3的倍数(一个数若为3的倍数,则该数的各个位之和为3的倍数)。由于这个数是3的倍数,则这个数乘3后的数,定为9的倍数。所以这个数为9的倍数(一个数若为9的倍数,则该数的各个位之和为9的倍数)。这样搜索范围缩小为100008开始到166666,步长为9。
(3) 分离出该数的6位数字,存放到一个数组中,而后将该数乘2、3、4、5、6后得到的积也分离出来存放到数组中。将得到的这些数组进行排序,而后再重新组成6个6位数,若这6个数均相同,则该数满足要求。