8288分类目录 8288分类目录 8288分类目录
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

求n!中因子k的个数

来源:本站原创 浏览:147次 时间:2021-10-12

思路:

  求n的阶乘某个因子k的个数,如果n比较小,可以直接算出来,但是如果n很大,此时n!超出了数据的表示范围,这种直接求的方法肯定行不通。其实n!可以表示成统一的方式。

  n!=(km)*(m!)*a   其中k是该因子,m=n/k,a是不含因子k的数的乘积

下面推导这个公式

n!=n*����,����(n-1)*(n-2)*......3*2*1

  =(k*2k*3k.....*mk)*a  (a是不含因子k的数的乘积,显然m=n/k;n!中必定包含1到m个k相乘)

  =(km)*(1*2*3...*m)*a    

  =km*m!*a       (统计时ans+=m,然后继续去求m!中含有的k因子个数)

接下来按照相同的方法可以求出m!中含有因子k的个数。

因此就可以求除n!中因子k的个数

 

举例:

  比如要求8!中因子2的个数。

  原式=8!=1*2*3*4*5*6*7*8

   第一步:对8除2(21),相当于将1到8中所有“第一个”2因子提取出来。 (此时原式=1*1*3*2*5*3*7*4)

  第二步:对8除4(22),相当于将1到8中所有”第二个“2因子提取出来。 (此时原式=1*1*3*1*5*3*7*2)

  第三步:对8除8(23),相当于将1到8中所有”第三个“2因子提取出来。 (此时原式=1*1*3*1*5*3*7*1)

  第四步:对8除16(24),结果为0,退出循环。

 

实现:

 1 int count(int n,int k) 2 { 3     int num=0; 4     while(n) 5     { 6         num+=n/k; 7         n/=k; 8     } 9     return num;10 }

 

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net