首页 > 代码库 > NYOJ 题目56 阶乘式因式分解(一)
NYOJ 题目56 阶乘式因式分解(一)
题目描述:
给定两个数m,n,其中m是一个素数。
将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m。
- 输入
- 第一行是一个整数s(0<s<=100),表示测试数据的组数
随后的s行, 每行有两个整数n,m。 - 输出
- 输出m的个数。
- 样例输入
-
2 100 5 16 2
- 样例输出
-
24 15
我的代码://AC#include<stdio.h>
int main()
{
int s,k;
scanf("%d",&s);
while(s--)
{
int m,n,i,b;
scanf("%d %d",&n,&m);
k=0;
for(i=n;i>=1;i--)
{
b=i;//刚开始我直接用i%m;没有经过转换,如果不用b=i的话,当满足情况时,i的值就会发生变化,比如说输入100 5
while(b%m==0)//理论是从100 99 98 依次往下判断,而用i=i/m的话,100/5=20,i的下一个值就变成了4,而不是99。
{
b=b/m;//最开始的代码为:while(i%m==0){i=i/m;k++}
k=k+1;
}
}
printf("%d\n",k);
}
return 0;
}
NYOJ 题目56 阶乘式因式分解(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。