码迷,mamicode.com
首页 > 其他好文 > 详细

nyist 56 阶乘因式分解(一)

时间:2014-08-09 21:08:29      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:os   io   strong   数据   for   div   时间   amp   

阶乘因式分解(一)

时间限制: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,i,ii;
scanf("%d",&s1);
while(s1--)
{ s=0;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{ ii=i;
if(ii%m==0)
{
s++; ii=ii/m;

while(ii%m==0)
{
s++; ii=ii/m ;
}
}
}
printf("%d\n",s);
}
}

 

 


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


//阶乘因式分解。我以为将n!所有的阶乘数中存在m的多少。
//原来不是这个意思。
//题目的意思描述错误。
//100/5=20 个5
//20/5=4个5
//4/5=0个5
//end
//统计下20+4+0=24

 


***************************************************

8*************************************************************************************

 


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

}

nyist 56 阶乘因式分解(一),布布扣,bubuko.com

nyist 56 阶乘因式分解(一)

标签:os   io   strong   数据   for   div   时间   amp   

原文地址:http://www.cnblogs.com/2014acm/p/3901469.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!