nyist 70 阶乘因式分解(二)

阶乘因式分解(二)

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

描述

给定两个数n,m,其中m是一个素数。

将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m。

注:^为求幂符号。

 

输入
第一行是一个整数s(0<s<=100),表示测试数据的组数
随后的s行, 每行有两个整数n,m。 
输出
输出m的个数
样例输入
3
100 5
16 2
1000000000  13
样例输出
24
15
83333329

#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;
}

nyist 70 阶乘因式分解(二),布布扣,bubuko.com

时间: 2024-10-13 22:26:46

nyist 70 阶乘因式分解(二)的相关文章

nyist 56 阶乘因式分解(一)

阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 #include<stdio.h>int main(){ int s1,n,m,s,j,

NYOJ 70 阶乘因式分解(二)【数学题】

思路: n=100   m=5 100是由20个5组成的,1~100中是5的倍数的数有 5.10.15.20....100 每十个数有两个 数是5的倍数,所以1~100中5的倍数有20个 , 从这二十个数中各分解出一个5,则有20个5,然后这二十个数变成20.19.18...1 即20的阶乘了相当于变成求20的阶乘能分解多少个m 在1~20中又能分解4个 在往下就不够 5个数了,就结束循环 所以总共能分解24个 难点详解: 为什么舍弃100中其他不是5的倍数的数呢? 题目让我们求5的倍数,那些数

NYOJ 70 阶乘因式分解(二)

时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m. 注:^为求幂符号.   输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m.  输出 输出m的个数 样例输入 3 100 5 16 2 1000000000 13 样例输出 24 15 83333329 分析: 这道题的关键是效率,找出最有效的算法.(和

【ACM】阶乘因式分解(二)

阶乘因式分解(二) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m. 注:^为求幂符号.   输入 第一行是一个整数s(0<s<=100),表示测试数据的组数随后的s行, 每行有两个整数n,m.  输出 输出m的个数 样例输入 3 100 5 16 2 1000000000 13 样例输出 24 15 83333329 #include <ios

NYOJ 56 阶乘因式分解(一)【数学题】

解释见阶乘因式分解(二) 阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 来源 网络 上传者 苗栋栋 #include<stdio.h>

阶乘因式分解(一)(南阳oj56)

阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 来源 网络 上传者 苗栋栋 #include<stdio.h> int main()

NYOJ 56 阶乘因式分解

阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 代码如下: #include<iostream> using namespace st

阶乘因式分解(一)

阶乘因式分解(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 my answer:#include<iostream> using namespace

nyist 91 阶乘之和

阶乘之和时间限制:3000 ms | 内存限制:65535 KB 难度:3描述 给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数)的阶乘之和,如9=1!+2!+3!,如果是,则输出Yes,否则输出No: 输入第一行有一个整数0<m<100,表示有m组测试数据:每组测试数据有一个正整数n<1000000;输出如果符合条件,输出Yes,否则输出No;样例输入2910样例输出YesNo #include <stdio.h>int main( ){ int m