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

也可以不用高精度:

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

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstdlib>
  4. #include<cstring>
  5. #include<cmath>
  6. #include<map>
  7. #include<set>
  8. #include<vector>
  9. #include<algorithm>
  10. #include<stack>
  11. #include<queue>
  12. using namespace std;
  13. #define INF 1000000000
  14. #define eps 1e-8
  15. #define pii pair<int,int>
  16. #define LL long long int
  17. int m,n,k,T;
  18. int prime[],vis[];
  19. void getprime()
  20. {
  21. int num=;
  22. for(int i=;i<;i++)
  23. {
  24. if(vis[i]==) prime[num++]=i;
  25. for(int j=i*i;j<;j+=i)
  26. {
  27. if(j%i==) vis[j]=;
  28. }
  29. }
  30. }
  31. int main()
  32. {
  33. //freopen("in6.txt","r",stdin);
  34. //freopen("out.txt","w",stdout);
  35. getprime();
  36. scanf("%d",&T);
  37. for(int cas=;cas<=T;cas++)
  38. {
  39. scanf("%d%d",&m,&n);
  40. k=INF;
  41. vector<pii>zhi;
  42. for(int i=;prime[i]<=m;i++)
  43. {
  44. int num=;
  45. while(m%prime[i]==)
  46. {
  47. num++;
  48. m/=prime[i];
  49. }
  50. if(num)
  51. zhi.push_back(make_pair(prime[i],num));
  52. }
  53. for(unsigned int i=;i<zhi.size();i++)
  54. {
  55. int t=zhi[i].first,num=;
  56. for(int j=n;j>=;j--)
  57. {
  58. int jj=j;
  59. while(jj%t==)
  60. {
  61. num++;
  62. jj/=t;
  63. }
  64. }
  65. //cout<<'k'<<num<<endl;
  66. k=min(k,num/(zhi[i].second));
  67. }
  68. printf("Case %d:\n",cas);
  69. if(k)
  70. printf("%d\n",k);
  71. else
  72. printf("Impossible to divide\n");
  73. }
  74. //fclose(stdin);
  75. //fclose(stdout);
  76. return ;
  77. }

uva10780(分解质因数)的更多相关文章

  1. uva10791 uva10780(分解质因数)

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  2. java分解质因数

      package test; import java.util.Scanner; public class Test19 { /** * 分析:对n进行分解质因数,应先找到一个最小的质数k * 最小 ...

  3. 程序设计入门——C语言 第6周编程练习 1 分解质因数(5分)

    1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...

  4. 【python】将一个正整数分解质因数

    def reduceNum(n): '''题目:将一个正整数分解质因数.例如:输入90,打印出90=2*3*3*5''' print '{} = '.format(n), : print 'Pleas ...

  5. light oj 1236 分解质因数

    题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70017#problem/H 题意:求满足1<=i<=j<=n ...

  6. 【基础数学】质数,约数,分解质因数,GCD,LCM

    1.质数: 质数(prime number)又称素数,有无限个.一个大于1的自然数,除了1和它本身外,不能整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数. 2.约数: 如 ...

  7. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m

    给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后 ...

  8. cdoj 1246 每周一题 拆拆拆~ 分解质因数

    拆拆拆~ Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1246 Descri ...

  9. hdu 5428 The Factor 分解质因数

    The Factor  Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest ...

随机推荐

  1. Django基础(二)_Ajax、csrf伪站请求

    什么是json? 定义: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript (w3c制定的js规范)的一个子 ...

  2. Linux系统通过console口连接交换机

    一.安装minicomUbuntu安装:sudo apt-get install minicom.centos安装:yum install minicom二.配置minicomUbuntu输入:sud ...

  3. android studio的安装和卸载

    安装: (待补充) 卸载: (如何彻底卸载才能达到第二次安装不受第一次安装失败的影响呢?) 1.找到安装目录,运行卸载文件.(不用清注册表,这是和卸载mysql的不同,只要把相关的文件夹,文件清楚即可 ...

  4. yii2弹出层

    bootstrap http://getbootstrap.com/javascript/#modals https://github.com/lichunqiang/yii2-sweet-submi ...

  5. Understanding When to use RabbitMQ or Apache Kafka

    https://content.pivotal.io/rabbitmq/understanding-when-to-use-rabbitmq-or-apache-kafka How do humans ...

  6. MQ,互联网架构解耦神器

    一个架构常识:当调用方需要关心执行结果,通常使用RPC调用. ret = PassportService::userAuth(name, pass); switch(ret){  case(YES) ...

  7. jsp导出

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. 019_Map Task数目的确定和Reduce Task数目的指定

    注意标题:Map Task数目的确定和Reduce Task数目的指定————自然得到结论,前者是后者决定的,后者是人为指定的.查看源码可以很容易看懂 1.MapReduce作业中Map Task数目 ...

  9. 【HackerRank】 Chocolate Feast

    Little Bob loves chocolates, and goes to the store with $N money in his pocket. The price of each ch ...

  10. python日志操作logging

    步骤: 1.定义一个日志收集器 my_logger = logging.getLogger("kitty") 2.设定级别.默认为warning:debug,,info,error ...