您的位置:首页 > 编程语言 > C语言/C++

POJ1401解题报告

2014-01-19 19:09 162 查看


思路:  这一题要求的是N!中末尾0的个数,其实也就是所包含因子10的个数。10=5*2,因子10的个数也就是因子2的个数与因子5的个数中较小的那个,N!=1*2*3...*N,其中2的因子个数一定不少于5的因子个数,所以要求的其实就是N!中所包含的5的因子个数。
     求 P^x || N!,这个算法在集训手册推荐的那本《初等数论》上64页有证明,其中x的值是1--N之中所有p的倍数的个数+p^2倍数的个数+p^3的倍数的个数
编程语言:C语言
代码如下:
#include <stdio.h>

void main()

{

 int in, n, num;

 scanf("%d", &n);

 while (n--)

 {

  num = 0;

  scanf("%d", &in);

  while (in>0)

  {

   num += in / 5;

   in = in / 5;

  }

  printf("%d\n", num);

 }

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言