阶乘因式分解 (n的阶乘分解质因数中含m的个数)

题目链接:http://59.69.128.200/JudgeOnline/problem.php?pid=56

http://59.69.128.200/JudgeOnline/problem.php?pid=70

给出两种方法,方法一:比较笨的拿2--n中间的数取枚举,

ContractedBlock.gif ExpandedBlockStart.gif View Code
 1  
2 #include<iostream>
3 using namespace std;
4 int main()
5 {
6 int k,i,j,n,m,w,a;
7 cin>>k;
8 while(k--)
9 {
10 w=a=0;
11 cin>>n>>m;
12 for(i=2;i<=n;i++)
13 {
14 j=i;
15 while(j%m==0&&j)
16 {
17 j=j/m;
18 a++;
19 }
20 w+=a;
21 a=0;
22 }
23 cout<<w<<endl;
24 }
25 return 0;
26 }
 
方法二:快速 核心思想是看2--n中含m^t次方的个数 含m,m^2.....,有多少个加几。
ContractedBlock.gif ExpandedBlockStart.gif View Code
 1 #include<iostream>
2 using namespace std;
3 int main()
4 {
5 int k,i,j,n,m,w,a;
6 cin>>k;
7 while(k--)
8 {
9 w=a=0;
10 cin>>n>>m;
11 w=0;
12 do
13 {
14 n/=m;
15 w+=n;
16 }while(n);
17
18 cout<<w<<endl;
19 }
20 return 0;
21 }

转载于:https://www.cnblogs.com/zhaoguanqin/archive/2011/07/30/2122026.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值