连乘乘积9*10*11……*126的末尾有几个连续的0

问题描述:

连乘乘积9*10*11……*126的末尾有几个连续的0

请注意,末尾的0是必然是由因子2*5得到的(譬如10里边就有一个2和一个5,126=2*3*3*7,有1个2,没有5,9没有因子2与5,所以对末尾的0没有贡献)
所以末尾连续的0的个数应该等于式子中所含因子2的个数和所含因子5的个数较小的那个(譬如有4个2和7个5相乘,就只有4个0连续,因为只有4个2,剩下3个5没法得到0)
9到126中(尽管明显5比2少,直接算5就可以了,但按完整算法,还是把2也算算)
所有的偶数个数为126/2-4=59(-4是因为1到126里边扣除2,4,6,8)
所有4的倍数个数为126/4(取整)-2=29(-2是扣除4,8)
所有8的倍数个数为126/8(取整)-1=14(-1是扣除8)
由于4的倍数含有2个因子2,但由于算偶数的个数时算了一个,所以只用再算一个
同理8的倍数含有3个因子2,但由于算偶数和4的倍数是算了2个,所以只用再算一个
从而2的因子总数为59+29+14=102
所有5的倍数个数为126/5(取整)-1=24(-1是扣除1到126里边的5)
所有25的倍数个数为126/25(取整)=5
所有125的倍数个数为1
同理5的因子总数为24+5+1=30
故乘积末尾有30个连续的0