当前位置:   article > 正文

求2013阶乘结果的六进制表示法尾部包含0的个数

计算结果化为6进制后,末尾共有多少个0

分析:2013!的六进制表示法尾部包含的0的个数意味着其因数分解中包含6的个数;

  比如6!=6*5*4*3*2*1=(720)10进制=(3200)6进制,可见尾部包含2个0;

深入分析:6=2*3,所以凡是因数分解中包含6的数一定能将6进一步分解为2和3,且2、3为质因数;

所以,可以遍历1-2013的每个数N,求得所有N的质因数分解中包含的3的个数count,然后累加所有count即为最后结果。

代码如下:

  1. int count_three(int N)
  2. {
  3. int count=0;
  4. while(N%3==0)
  5. {
  6. count++;
  7. N /= 3;
  8. }
  9. return count;
  10. }
  11. int sum_2013()
  12. {
  13. int i,sum=0,m=2013;
  14. for(i=1;i<=m;i++)
  15. {
  16. sum+=count_three(i);
  17. }
  18. return sum;
  19. }

 

转载于:https://www.cnblogs.com/xiaowenchao/archive/2013/04/28/3050131.html

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号