Harry Potter and the Hide Story

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 2809    Accepted Submission(s): 715

Problem Description
iSea is tired of writing the story of Harry Potter, so, lucky you, solving the following problem is enough.
 
Input
The first line contains a single integer T, indicating the number of test cases.
Each test case contains two integers, N and K.

Technical Specification

1. 1 <= T <= 500
2. 1 <= K <= 1 000 000 000 000 00
3. 1 <= N <= 1 000 000 000 000 000 000
 
Output
For
each test case, output the case number first, then the answer, if the
answer is bigger than 9 223 372 036 854 775 807, output “inf” (without
quote).
 
Sample Input
2
2 2
10 10
 
Sample Output
Case 1: 1
Case 2: 2
 思路:素数分解;
当K = 1的时候肯定输出inf;我们将n分解成素数的乘积,那么我们需要找m!分解后含有这些素数的个数cnt[pi],那么最高次就是min(cnt[pi]/cnt1[pi]);cnt1[pi]为n中pi的个数。
 1 #include<stdio.h>
2 #include<algorithm>
3 #include<iostream>
4 #include<queue>
5 #include<set>
6 #include<math.h>
7 #include<string.h>
8 using namespace std;
9 typedef unsigned long long LL;
10 bool prime[10000015];
11 LL ans[1000000];
12 LL prime_table[10000];
13 LL pr_cnt[10000];
14 LL pr_cn[10000];
15 LL slove(LL n,LL m,int cn);
16 int main(void)
17 {
18 int T;
19 scanf("%d",&T);
20 int i,j;
21 for(i = 2; i < 10000; i++)
22 {
23 if(!prime[i])
24 {
25 for(j = i; (i*j) <= 10000010; j++)
26 {
27 prime[i*j] = true;
28 }
29 }
30 }
31 int cn = 0;
32 for(i = 2; i < 10000010; i++)
33 if(!prime[i])ans[cn++] = i;
34 int __ca = 0;
35 while(T--)
36 {
37 LL n,m;
38 __ca++;
39 scanf("%llu %llu",&m,&n);
40 printf("Case %d: ",__ca);
41 if(n == 1)
42 printf("inf\n");
43 else
44 {
45 printf("%llu\n",slove(n,m,cn));
46 }
47 }
48 return 0;
49 }
50 LL slove(LL n,LL m,int cn)
51 {
52 int bn = 0;
53 int f = 0;
54 bool flag = false ;
55 memset(pr_cnt,0,sizeof(pr_cnt));
56 memset(pr_cn,0,sizeof(pr_cn));
57 while(n>1)
58 {
59 while(n%ans[f]==0)
60 {
61 if(!flag)
62 {
63 flag = true;
64 bn++;
65 prime_table[bn] = ans[f];
66 }
67 pr_cnt[bn]++;
68 n/=ans[f];
69 }
70 f++;
71 flag = false;
72 if((LL)ans[f]*(LL)ans[f] > n)
73 break;
74 }
75 if(n > 1)
76 {
77 bn++;
78 prime_table[bn] = n;
79 pr_cnt[bn]++;
80 }//printf("%d\n",n);
81 LL maxx = -1;
82 for(int i = 1; i <= bn; i++)
83 { //printf("%llu\n",prime_table[i]);
84 LL v = m;
85 while(v)
86 {
87 v/=(LL)prime_table[i];
88 pr_cn[i]+=v;
89 }
90 if(maxx == -1)
91 {
92 maxx = (LL)pr_cn[i]/(LL)pr_cnt[i];
93 }
94 else
95 maxx = min((LL)pr_cn[i]/(LL)pr_cnt[i],maxx);
96 }
97 return maxx;
98 }

Harry Potter and the Hide Story(hdu3988)的更多相关文章

  1. HDU 3988 Harry Potter and the Hide Story(数论-整数和素数)

    Harry Potter and the Hide Story Problem Description iSea is tired of writing the story of Harry Pott ...

  2. HDU3988-Harry Potter and the Hide Story(数论-质因数分解)

    Harry Potter and the Hide Story Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 ...

  3. HDU 3987 Harry Potter and the Forbidden Forest(边权放大法+最小割)

    Harry Potter and the Forbidden Forest Time Limit: 5000/3000 MS (Java/Others)    Memory Limit: 65536/ ...

  4. View and Data API Tips: Hide elements in viewer completely

    By Daniel Du With View and Data API, you can hide some elements in viewer by calling "viewer.hi ...

  5. jquery的show/hide/toggle详解

    通过阅读源码我们发现show,hide,toggle调用了showHide和isHidden这2个方法,所以我们要搞明白原理必须先看一下这2个方法. jQuery.fn.extend({ ...... ...

  6. Jquery:hide一个元素,需要注意的问题(offset)

    $(".load_more").css('display','none'); 或 $(that.more).find("strong").hide(); 需要注 ...

  7. jquery的hide()和show()

    jquery用hide()和show()函数来控制html元素的显示和隐藏. hide()和show()都可以带参数的,hide(1000)表示隐藏所需的时间为1秒.此外还可以用slow,fast参数 ...

  8. JS——树形导航菜单(html的ul嵌套,jQuery的css(),show(),hide(),index()等方法)

    必备工具:jquery库文件.我这里用的是1.4版本的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...

  9. [转]Hide or Remove jquery ui tab based on condition

    本文转自:http://stackoverflow.com/questions/19132970/hide-or-remove-jquery-ui-tab-based-on-condition 问: ...

随机推荐

  1. Oracle-trunc函数、round 函数、ceil函数和floor函数---处理数字函数使用

    0.round函数 按照指定小数位数进行四舍五入运算. SELECT ROUND( number, [ decimal_places ] ) FROM DUAL #number : 待处理数值  de ...

  2. Linux-设置终端界面的字体颜色和自定义常用快捷功能

    .bashrc是一个隐藏的文件,要打开并修改该文件需要: (0)命令:cd ~ (1)命令:ls -a 找到文件 .bashrc: (2) 命令 vim ~/.bashrc 进入到文件: (3) 直接 ...

  3. C#集合Dictionary中按值的排序

    C#集合Dictionary中按值的降序排列 static void Main(string[] args) {             Dictionary<string, int> d ...

  4. python函数初体验

    函数 函数参数w 形式参数>>>>(被指定具体的值)默认参数, 实际参数是调用时候的实际指定参数 我们把函数⾥⾯的参数叫形式函数,函数实际调⽤的时候,赋予的参数叫实际函数 定义 ...

  5. Visual Studio Code常用操作整理

    Live Server插件可以在保存html文件后实时地刷新页面 在html文件中键入"! +Tap"会生成一个html模板 保存文件:Ctrl+S 文件跳转:Ctrl+P 文件内 ...

  6. 学习java 7.7

    学习内容: 多态转型:向上转型 Animal a = new Cat(); a.eat(); 向下转型 Cat c = (Cat)a; c.eat(); 抽象方法没有方法体,抽象类中有抽象方法 抽象类 ...

  7. 24. 解决Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

    第一种: sudo vim /etc/resolv.conf 添加nameserver 8.8.8.8 第二种: /etc/apt/sources.list 的内容换成 deb http://old- ...

  8. 大数据学习day39----数据仓库02------1. log4j 2. 父子maven工程(子spring项目的创建)3.项目开发(埋点日志预处理-json数据解析、清洗过滤、数据集成实现、uid回补)

    1. log4j(具体见log4j文档) log4j是一个java系统中用于输出日志信息的工具.log4j可以将日志定义成多种级别:ERROR  /  WARN  /  INFO  /  DEBUG ...

  9. ios加载html5 audio标签用js无法自动播放

    html5 audio标签在ios 微信浏览器中是无法自动播放的,最近在做一个小的项目遇到这个问题,安卓和pc都是正常的,唯独ios不行,查阅了很多资料,找到了以下方法,也许不是最好用的方法,如果有更 ...

  10. html href页面跳转获取参数

    //传递参数 var id = columnData.id; var companyname = encodeURI(columnData.companyname); var linename = e ...