博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 10780
阅读量:5080 次
发布时间:2019-06-12

本文共 1337 字,大约阅读时间需要 4 分钟。

曾经做过一个类似的  求n!中有多少个质因子m 

这里有一个结论 k = n/m+n/(m^2)+n/(m^3)+....

int getnum(int n, int m){    int sum = 0;    while(n)    {        sum += n/m;        n /= m;    }    return sum;}
然后这个题就比较容易了

/*************************************************************************    > Author: xlc2845       > Mail: xlc2845@gmail.com    > Created Time: 2013年10月24日 星期四 16时15分17秒 ************************************************************************/#include 
#include
#include
#include
#include
#include
#include
#define maxn 210#define INF 0x7fffffffusing namespace std;bool flag[5010];int prime[5010];void GetPrime(){ memset(flag, 0, sizeof(flag)); int p = 0; for(int i = 2; i < 5001; i++) { if(!flag[i]) { prime[p++] = i; for(int j = i+i; j < 5001; j+=i) flag[j] = 1; } }}int getnum(int n, int m){ int sum = 0; while(n) { sum += n/m; n /= m; } return sum;}int main(){ GetPrime(); int t,n,m,ca = 1; scanf("%d",&t); while(t--) { int p = 0, ans = INF; scanf("%d%d",&m,&n); while(m > 1) { int k = 0; while(m % prime[p] == 0) { k++; m /= prime[p]; } if(k) ans = min(getnum(n, prime[p])/k, ans); p++; } printf("Case %d:\n",ca++); if(ans) printf("%d\n",ans); else puts("Impossible to divide"); } return 0;}

转载于:https://www.cnblogs.com/avema/p/3774218.html

你可能感兴趣的文章
log4j
查看>>
吴忠文化旅游的现状与问题
查看>>
base64图片上传,推到又拍云
查看>>
Andriod中的Handler机制
查看>>
数据仓库理论
查看>>
674. 最长连续递增序列
查看>>
Java体系结构介绍
查看>>
JavaNIO(一)(IO基本概念扫盲篇)
查看>>
tkinter笔记二
查看>>
[Label] 文字前距离
查看>>
WinForm GroupBox控件重绘外观
查看>>
java 向上,向下转型
查看>>
4.1 反射工具
查看>>
智能社JavaScript学习笔记第四课
查看>>
“Hello World!”团队第六周的第三次会议
查看>>
使用libcurl下载https地址的文件
查看>>
android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
查看>>
创建手势密码
查看>>
SQL LIKE 操作符
查看>>
5分钟搞定内存字节对齐
查看>>