CodeForces 633 B.A Trivial Problem(二分+数论)
来源:互联网 发布:linux python debug 编辑:程序博客网 时间:2024/04/28 21:56
Description
问哪些数的阶乘后面有m个0
Input
一个整数m(1<=m<=1e5)
Output
输出满足条件的数的个数以及升序输出这些数
Sample Input
1
Sample Output
5
5 6 7 8 9
Solution
n!后面0的个数为n!质因子分解后5的幂指数,如果n是满足条件的最小的数字,那么n必然可以被5整除(否则(n-1)!后面必然也有m个0,不符合n的定义),进而n+1,n+2,n+3,n+4都不能被5整除,n+5可以被5整除,那么n,n+1,n+2,n+3,n+4为所有符合条件的答案,所以问题转化为求最小的n,使得n!的素因子分解形式中5的幂指数为m,二分答案即可
Code
#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#include<queue>#include<map>#include<set>#include<ctime>using namespace std;typedef long long ll;#define INF 0x3f3f3f3f#define maxn 1111int count(int m){ int ans=0; while(m) ans+=m/5,m/=5; return ans;}int Solve(int m){ int l=1,r=500000,mid,ans=0; while(l<=r) { mid=(l+r)>>1; if(count(mid)>=m)ans=mid,r=mid-1; else l=mid+1; } if(count(ans)==m)return ans; return -1;}int main(){ int m; while(~scanf("%d",&m)) { int ans=Solve(m); if(ans==-1)printf("0\n"); else { printf("5\n"); for(int i=0;i<5;i++) printf("%d%c",ans+i,i==4?'\n':' '); } } return 0;}
0 0
- CodeForces 633 B.A Trivial Problem(二分+数论)
- Codeforces 633B A Trivial Problem 【数论】
- CodeForces Manthan, Codefest 16 B A Trivial Problem 二分
- CodeForces 633B A Trivial Problem(找规律)
- CodeForces 633B A Trivial Problem(思维,阶乘 0 的个数)
- CF 633B:A Trivial Problem
- cf 633b A Trivial Problem
- CF 633B A Trivial Problem
- cf 633B A trivial problem
- Manthan, Codefest 16 B. A Trivial Problem(数学)
- Manthan, Codefest 16 -B. A Trivial Problem
- A + B Problem + 数论
- Trivial Problem CodeForces
- 【Manthan, Codefest 16B】【二分 or 递推暴力】A Trivial Problem 输出阶乘为m的所有数
- A Trivial Problem
- cf A Trivial Problem
- Problem 1057 a^b(数论)
- codeforces 782/problem/B [二分]
- 有关在thinkphp.CN中的讨论的回应
- USB传输要素
- IDEA激活方法
- 高德地图精确查找与定位RegeocodeQuery与GeocodeQuery
- Linux 下完整安装ffmpeg(包括各种解码器)
- CodeForces 633 B.A Trivial Problem(二分+数论)
- OkHttp3源码分析(二)
- C#获取计算机信息
- shutdownInput与shutdownOutput
- opencv中直方图均衡函数cv::equalizeHist()的使用!!严格用程序进行了验证!
- 设计模式(四):建造者模式
- java中list的赋值操作小坑
- 史上最全的XML基础教程(收藏)
- linux在安装ffmpeg时怎么将/usr/local/ffmpeg/lib目录设置到LD_LIBRARY_PATH环境变量