1340 - Story of Tomisu Ghost

  PDF (English) Statistics Forum
Time Limit: 2 second(s) Memory Limit: 32 MB

It is now 2150 AD and problem-setters are having a horrified time as the ghost of a problem-setter from the past, Mr. Tomisu, is frequently disturbing them. As always is the case in most common ghost stories, Mr. Tomisu has an unfulfilled dream: he had set 999 problems throughout his whole life but never had the leisure to set the 1000th problem. Being a ghost he cannot set problems now so he randomly asks problem-setters to complete one of his unfinished problems. One problem-setter tried to convince him saying that he should not regret as 999 is nowhere near 1024 (210) and he should not worry about power of 10 being an IT ghost. But the ghost slapped him hard after hearing this. So at last one problem setter decides to complete his problem:

"n! (factorial n) has at least t trailing zeroes in b based number system. Given the value of n and t, what is the maximum possible value of b?"

Input

Input starts with an integer T (≤ 4000), denoting the number of test cases.

Each case contains two integers n (1 < n ≤ 105) and t (0 < t ≤ 1000). Both n and t will be given in decimal (base 10).

Output

For each case, print the case number and the maximum possible value of b. Since b can be very large, so print b modulo 10000019. If such a base cannot be found then print -1 instead.

Sample Input

Output for Sample Input


4

1000 1000

1000 2

10 8

4 2


Case 1: -1

Case 2: 5227616

Case 3: 2

Case 4: 2



Problem Setter: Shahriar Manzoor

Special Thanks: Jane Alam Jan, Md. Towhidul Islam Talukder

思路:很简单,只要将前面的数的阶乘素数分解,然后将每个因子的个数要求末尾0的个数然后答案*power(pi,ans/m);

其实就是把一个数写成k*d^m;中d的数值;

 1 #include <cstdio>
 2 #include <cstdlib>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <iostream>
 6 #include <algorithm>
 7 #include <map>
 8 #include <queue>
 9 #include <vector>
10 using namespace std;
11 typedef  long long LL;
12 const int N=10000019;
13 bool prime[100005];
14 int ans_prime[100005];
15 int fen_prime[100005];
16 LL quick(LL n,LL m);
17 int main(void)
18 {
19         int i,j,k;
20         int an=0;
21         for(i=2; i<=100000; i++)
22         {
23                 if(!prime[i])
24                 {
25                         for(j=i; ((LL)i*(LL)j)<=100000; j++)
26                         {
27                                 prime[i*j]=true;
28                         }
29                         ans_prime[an++]=i;
30                 }
31         }
32         int __ca=0;
33         scanf("%d",&k);
34         while(k--)
35         {
36                 __ca++;
37                 LL n,m;
38                 scanf("%lld %lld",&n,&m);
39                 memset(fen_prime,0,sizeof(fen_prime));
40                 for(i=0; i<an; i++)
41                 {
42                         LL ask=n;
43                         if(ask<ans_prime[i])
44                         {
45                                 break;
46                         }
47                         else
48                         {
49                                 while(ask)
50                                 {
51                                         fen_prime[i]+=ask/ans_prime[i];
52                                         ask/=ans_prime[i];
53                                 }
54                         }
55                         if(fen_prime[i]<m)
56                             break;
57                 }
58                 LL anw=1;
59                 for(i=0;i<an;i++)
60                 {
61                     if(fen_prime[i]<m)
62                     {
63                         break;
64                     }
65                     else
66                     {
67                         anw=(anw*quick(ans_prime[i],fen_prime[i]/m))%N;
68                     }
69                 }
70                 printf("Case %d: ",__ca);
71                 if(anw==1)
72                 {
73                     printf("-1\n");
74                 }
75                 else
76                 {
77                     printf("%lld\n",anw);
78                 }
79         }
80         return 0;
81 }
82 LL quick(LL n,LL m)
83 {
84         LL ak=1;
85         while(m)
86         {
87                 if(m&1)
88                 {
89                         ak=ak*n%N;
90                 }
91                 n=n*n%N;
92                 m/=2;
93         }
94         return ak;
95 }
时间: 2024-11-09 01:48:13

1340 - Story of Tomisu Ghost的相关文章

LightOJ 1340 - Story of Tomisu Ghost 阶乘分解素因子

http://www.lightoj.com/volume_showproblem.php?problem=1340 题意:问n!在b进制下至少有t个后缀零,求最大的b. 思路:很容易想到一个数通过分解素因子可以得到最大的指数.那么问题关键在于求得n!的素因子的指数,找到指数大于t的所有素因子,再将那些指数除去t,剩下的数就是最大的b了.分解阶乘时,对n不断除素数p,直到n为0时,此时商的和即该素因子的指数. /** @Date : 2016-11-30-19.35 * @Author : Lw

BNU 13259.Story of Tomisu Ghost 分解质因子

Story of Tomisu Ghost It is now 2150 AD and problem-setters are having a horrified time as the ghost of a problem-setter from the past, Mr. Tomisu, is frequently disturbing them. As always is the case in most common ghost stories, Mr. Tomisu has an u

给虚拟机安装GHOST版本的windows系统

今天需要装XP系统到虚拟机做实验,首先下载了ISO镜像,发现网上大多ISO镜像都是GHOST版本的,并非原生态安装版本.遇到以下问题: 1.加载ISO镜像,进行安装时错误提示A:\ghosterr.txt 如下图: 这个错误是由于VMware并没有事先将虚拟机的磁盘进行分区,所以没有主引导MBR,导致GHOST无法安装.那么需要先将虚拟机磁盘建立MBR:但实际操作又遇到问题:虚拟机如果第一次加载ISO不直接安装系统而是启动DiskGinus进行分区,建立MBR操作后,第二次虚拟机就不会主动加载I

uefi+gpt+ghost安装win7系统

习惯性的使用win7,今天心血来潮想试下gpt+win7的模式 实验环境: 1.        机器为Thinkpad e450 2.        Winpe为it自由天空的pe 3.        镜像为大地ghost 下载后自己修改精简的win7的ghost镜像 步骤如下: 1.        uefi模式进入winpe,使用diskgen删光原来的分区,看下磁盘的模式,如果是mbr,则点击硬盘--转换为gpt模式,然后点击建立分区,去掉msr分区的勾,只要esp分区就好,大小默认100兆

基于CrossApp引擎和ghost博客系统的APP

技多不压身,即使没有用,也能装个逼. 开发这款APP,其实并不是给别人用的,更多的是给自己用.一直以来都是为APP开发数据接口,对APP开发并不了解,只知道业务需求需要什么数据,我提供什么接口来调取数据.如果止步如此,对技术的提升是没有帮助的. APP并不难,但也不简单,这款APP从学习CrossApp引擎到APP完成,总花掉了12天时间.并且还未对android适配调整,不过我也不打算适配了.android虚拟机实在太卡,还时不时的不响应(人生哲学:自身的发展,受限于当时环境影响). Cros

ghost 还原系统时,遇到error 10010,提示can not open image file

昨天系统有点问题,在用Ghost还原系统时,一直提示10010错误,提示can not open image file 想着可能是备份文件的问题,从另一台电脑上重新拷过来一份,仍然不行,Ghost还是提示10010错误 后来,实在没办法,想着可能是路径问题,就把备份文件从F盘的子文件夹里拷到E盘根目录下,重新试了一下,可以了. 看来还真是路径的问题. ghost 还原系统时,遇到error 10010,提示can not open image file,布布扣,bubuko.com

布同:使用ghost备份或者还原的往事

我大学的时候经常折腾电脑,安装了不少莫名其妙的东西.当时对各种小软件特别感兴趣,本着毕业后可以做客户端开发的初衷去做事情.不过很多小软件会恶意安装各种东西,修改注册表,时间一长就会导致C盘很臃肿,必须重新安装系统才会变得轻快起来. 后来就开始学习绿色软件.因为重新安装系统之后,可以直接打开就使用,比较方便. 最后安装系统太麻烦了,因为把各种常用的工具都安装配置好,太费事儿了.于是想到了ghost做备份. 我主要使用的是老毛桃一键还原.把系统基于各个状态都作了备份,每个季度还原一次系统,再升级好工

Online DDL gh-ost工具测试

OS:centos 6.5 DB:percona server 5.6.32 gh-ost:1.0.21 DB-M:192.168.128.128 DB-S : 192.168.128.129 简介: gh-ost是github开源的一款在线执行sql的开源工具.可以用于在线表结构变更(特别是大表,原因下面讲) 在线表结构变更,目前常用有以下几种方式: 1.小表:online ddl (5.6及其以后版本) 创建临时表为更改后的表结构,更新临时表数据,原表的新入数据记录入内存中的alter lo

CentOS 7.2 搭建 Ghost 博客

因为平时记录一些文档或想法基本使用 markdown 的语法,Mac 下推荐一款 markdown 的编辑器 Haroopad:上周无意发现 Ghost 有支持 Mac 的桌面版本了,并且同样开源 https://github.com/tryghost/ghost-desktop ,这样后面记录一些文档也可以同步到网络上就很方便了,于是重新搭建了一个. Ghost 是基于 NodeJS 的开源博客平台,由前 WordPress UI 部门主管 John O’Nolan 和 WordPress 高