可以直接用高精度来暴力求。

也可以不用高精度:

把m分解质因数,记录每个因数和它的次数。然后计算每个因数在n的阶乘里出现了多少次,再把这个次数除以它在m中的次数,就是可能的k值。取最小的k。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<vector>
#include<algorithm>
#include<stack>
#include<queue>
using namespace std;
#define INF 1000000000
#define eps 1e-8
#define pii pair<int,int>
#define LL long long int
int m,n,k,T;
int prime[],vis[];
void getprime()
{
int num=;
for(int i=;i<;i++)
{
if(vis[i]==) prime[num++]=i;
for(int j=i*i;j<;j+=i)
{
if(j%i==) vis[j]=;
}
}
}
int main()
{
//freopen("in6.txt","r",stdin);
//freopen("out.txt","w",stdout);
getprime();
scanf("%d",&T);
for(int cas=;cas<=T;cas++)
{
scanf("%d%d",&m,&n);
k=INF;
vector<pii>zhi;
for(int i=;prime[i]<=m;i++)
{
int num=;
while(m%prime[i]==)
{
num++;
m/=prime[i];
}
if(num)
zhi.push_back(make_pair(prime[i],num));
}
for(unsigned int i=;i<zhi.size();i++)
{
int t=zhi[i].first,num=;
for(int j=n;j>=;j--)
{
int jj=j;
while(jj%t==)
{
num++;
jj/=t;
}
}
//cout<<'k'<<num<<endl;
k=min(k,num/(zhi[i].second));
}
printf("Case %d:\n",cas);
if(k)
printf("%d\n",k);
else
printf("Impossible to divide\n");
}
//fclose(stdin);
//fclose(stdout);
return ;
}

最新文章

  1. PowerDesigner 常用设置
  2. Java集合系列:-----------08HashMap的底层实现
  3. IBM HTTP Server Performance Tuning
  4. [COCI]coci2015/2016 nekameleoni
  5. 负载均衡LVS集群详解
  6. PHP的MVC框架 深入解析
  7. C# 窗体靠近屏幕边缘自动隐藏*学习(类似于QQ)
  8. 从零开始制作Minecraft启动器(C++开源)
  9. Ubuntu搭建Gitlab服务器
  10. [UOJ 41]【清华集训2014】矩阵变换
  11. SignUtil
  12. Eclipse debug 断点不能调试 ,Eclipse Unable to install breakpoint in 解决办法
  13. C# 如何使用长度来切分字符串
  14. 关于ADC采集
  15. 自写Jquery插件 Tab
  16. 服务器 三 MQTT服务器手机开发
  17. ballerina 学习二十七 项目k8s部署&amp;&amp; 运行
  18. rabbitMQ 常用命令
  19. eclipse常见使用方法
  20. Walkway.js – 创建简约的 SVG 线条动画

热门文章

  1. ACM解题之(ZOJ 1094) Matrix Chain Multiplication
  2. LeetCode_Easy_471:Number Complement
  3. 使用SQL Server Management Studio 创建数据库备份作业
  4. Raspberry Pi开发之旅-实现云平台监控
  5. RTC是DS1339,驱动采用的是rtc-ds1307.c
  6. STM32f103的电阻触摸屏的五点校正算法
  7. JMeter学习(八)JDBC测试计划-连接Oracle
  8. java resources 红叉 An error occurred while filtering resources
  9. FreeMarker缓存处理
  10. JAVA使用Freemarker生成静态文件中文乱码