首页 > 代码库 > nyist 70 阶乘因式分解(二)
nyist 70 阶乘因式分解(二)
阶乘因式分解(二)
- 描述
给定两个数n,m,其中m是一个素数。
将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m。
注:^为求幂符号。
- 输入
- 第一行是一个整数s(0<s<=100),表示测试数据的组数
随后的s行, 每行有两个整数n,m。 - 输出
- 输出m的个数
- 样例输入
3100 516 21000000000 13
- 样例输出
241583333329
#include <stdio.h>
int main( )
{
int count,n,m,i,ii,t;
scanf("%d",&t);
while(t--)
{
count=0;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{ ii=i ;
if(ii%m==0) // 逐个 检验
{
count++; // +1
ii=ii/m; // 新ii 是否 含m的某次方
while(ii%m==0) // m的某次方
{ count++; ii=ii/m; } //
}
}
printf("%d",count);
}}
***************************************
#include <iostream>
using namespace std;
int main()
{
int m,n,k,s,sum;
cin >> s;
while(s--)
{
sum=0;
cin >> n >> m; //m是素数
while(n)
{
k=n/m;
sum+=k;
n=k;
}
cout << sum << endl;
}
}***************************************
#include<stdio.h>
int main()
{
int s;
long long n,m,ans;scanf("%d",&s);
while(s--)
{
scanf("%lld%lld",&n,&m);
ans=0;
while(n>=m)
{
ans+=n/m;
n/=m;
}
printf("%lld\n",ans);
}
return 0;
}
*********************88888这里好几个题全是调用这个式子,不过为啥呢?这个式子分析不懂,高手给个回复吧!
cin>>a>>b;
k=0;
do
{
a/=b;
k+=a;
}while(a);
cout<<k<<endl;
*********************************8********************************************************#include<stdio.h>
main()
{
int N,m,s,n;
scanf("%d",&N);
while(N--)
{ s=0;
scanf("%d%d",&n,&m);
do { n/=m ;
s+=n ; }
while(n) ;
printf("%d\n",s);
}
}
***************************88****************************************
#include<stdio.h>
main()
{
int N,m,s,n;
scanf("%d",&N);
while(N--)
{ s=0;
scanf("%d%d",&n,&m);
while(n)
{ n/=m ;
s+=n ; }
printf("%d\n",s);
}
}***************************
#include<stdio.h>
int main()
{
int N,n,m;
scanf("%d",&N);
while (N--)
{
scanf("%d%d",&n,&m);
int ans;
ans=0;
while(n>=m)
{
ans+=n/m;
n/=m;
}
printf("%d\n",ans);
}
return 0;
}
********************************/*
http://www.cnblogs.com/liwenxin/archive/2011/04/12/jiechengyinshifenjie.html
*/
#include <iostream>
using namespace std;
int jc(int n,int m)
{
int sum=0;
while(n)
{
sum+=n/m;
n/=m;
}
return sum;
}
int main()
{
int s;
cin>>s;
while(s--)
{
int n,m;
cin>>n>>m;
cout<<jc(n,m)<<endl;
}
return 0;
}