找出最小的自然数据N,使得N!刚好有Q个后缀零。N!=1*2*...*N. 例如5!=1*2*3*4*5=120, 120有1个后缀0。
输入
先输入一个整数T(1 \le T \le 10000)T(1≤T≤10000),表示有T组测试数据。
接下来T行,每行一个整数Q(1 \le Q \le 10^8)Q(1≤Q≤108)。
输出
对于每一个测试用例,输出case编号和整数N,如果找不到,输出impossible
样例
输入
复制
3 1 10 5
输出
复制
Case 1: 5 Case 2: 45 Case 3: impossible
提示
子任务1,10分,1 \le Q \le 21≤Q≤2
子任务2,30分,1 \le Q \le 101≤Q≤10
子任务3,60分,全范围
#include <iostream> #include <cstdio> #include <cstdlib> #include <queue> #include <cstring> #include <cmath> #include <set> #include <algorithm> #include <functional> #define inf 0x3f3f3f3f int GetNum(int n) { int num = 0; int d = 1; while (d <= n) { num += n / d; d *= 5; } return num; } int GetAllNum(int d) { int l = 0; int r = d; while (l <= r) { int mid = (l + r + 1) / 2; int num = GetNum(mid); if (num < d) l = mid + 1; else if (num > d) r = mid - 1; else return mid * 5; } return -1; } int main() { int n, d; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &d); int num = GetAllNum(d); printf("Case %d: ", i + 1); if (num == -1) { printf("impossible\n"); } else { printf("%d\n", num); } } return 0; }
如果觉得有帮助,点个推荐啦~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-11-13 51nod 1185 威佐夫游戏 V2
2017-11-13 L2-017. 人以群分
2017-11-13 L2-007. 家庭房产