nyoj70阶乘因式分解(数学)
来源:互联网 发布:java饭店订餐系统 编辑:程序博客网 时间:2024/04/30 15:18
阶乘因式分解(二)
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
给定两个数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 s,n,m,x,i,sum;scanf("%d",&s);while(s--){scanf("%d%d",&n,&m);sum=0;if(n%m){n-=n%m;}for(i=n;i>=2;){x=i;while(x%m==0){sum++;x=x/m;}i-=m;}printf("%d\n",sum);}return 0;}//思路://例如,n=100,m=5//100是由20个5组成的,1~100中是5的倍数的数字有 5,10,15,20,25,30......100//每10个 数中有两个是5的倍数,所哟1~100中是5的倍数的数字有20个//从这20个数中各分解出一个5,则有20个5;然后这20个数变成20,19,18.......1//即20的阶乘变成了求20的阶乘能分解出多少个m//在1~20中又能分解出4个,再往下就不够5了,就结束循环,总共能分解出24个5。//题目中之所以舍弃1~100中其他不是5的倍数的数,是因为题目让我们求5的倍数,那些数都不是5的倍数,就不可能分解出5这个因子。所以社区也没有关系。 /* 又如,求16的阶乘能分解出多少个2 1~16中是2的倍数的数有2,4,6,8,10,12,14,16,即1~16中2的倍数的数有8个。 再从这8个数中各分解出一个2,则有8个2; 然后这8个数变成1,2,3,4,5,6,7,8;再从1~8这8个数中各分解出一个2(能分解出2的就分解出一个2,不能分解出2的就舍弃),则有4个2;这8个数变成 1,2,3,4;在从1~4中各分解出一个2,(能分解出2的就分解出一个2,不能分解出2的就舍弃),则有2个2;然后这4个数变成1,2;再从1~2中各分解出以讴歌2(依然是能分解出2的分解出一个2,不能分解出2的舍弃),则有1个2;然后这2个数变成1,(1已经不足2,)无法再分分解,就结束循环。 */
0 0
- nyoj70阶乘因式分解(数学)
- NYOJ70阶乘因式分解(二)
- NYoj70 阶乘因式分解(二)
- NYOJ70阶乘因式分解
- 阶乘因式分解(二) (数学)
- 数学中阶乘因式分解
- nyoj 70阶乘因式分解(二)(数学)
- NYOJ 题目阶乘因式分解(二)(数学)
- nyoj 阶乘因式分解(二) 70 (数学)
- NYOJ【56】阶乘因式分解(一)【思维】&&【数学】
- 阶乘因式分解(一)
- 阶乘因式分解(一)
- 阶乘因式分解(二)
- 阶乘因式分解(一)
- 阶乘因式分解(一)
- 阶乘因式分解(一)
- 阶乘因式分解(二)
- 阶乘因式分解(二)
- pat1008 Elevator
- C/C++学习:求平均值函数
- 我的第一篇博客
- JavaScript:引用js文件时的编码格式问题(转载自百度经验)
- BBasic for Android-真正意义上的安卓端BBasic虚拟机
- nyoj70阶乘因式分解(数学)
- Weblogic admin server与manager server内存分配缺陷优化
- (hdu step 2.1.8)小数化分数2(小数化分数——包括了循环小数化分数的情况)
- C/C++学习:数字排序(使用快速排序)
- LeetCode Longest Common Prefix
- JAVA(day01)
- git技巧之通过git commit –amend修该上次提交
- Mac gif录屏软件 LICEcap
- 菜单(五)ActionMode和PopupMenu