Submit | All submissions | Best solutions | Back to list |
FACTMULP - Product of factorials (hard) |
For n positive integer, let F(n) = 1! × 2! × 3! × 4! × ... × n!, product of factorial(i) for i in [1..n], For p a prime number, and n an integer, and let V(p, n) = max({i>=0 integer, such that p^i divides F(n)}).
Input
The first line of input contains an integer T, the number of test cases. On each of the next T lines, your are given two integers p a prime number, and e.
Output
For each test case, you have to print V(p, p^e). As the answer may not fit in a 64-bit container, just output your answer modulo 10^9+7.
Example
Input: 1 2 2 Output: 5
Constraints
0 < T < 10^5 1 < p < 10^18, a prime number 0 < e < 10^18
p and e are log-uniform independent randomly distributed. Warning : input contains tricky cases too.
A single line of human-readable-Python code can get AC in the third of the time limit. A fast C code ends in 0.04s. (edit 2017-02-11, after compiler changes) ;-) Have fun.
Added by: | Francky |
Date: | 2014-03-01 |
Time limit: | 4.300s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 |
Resource: | Own Problem |
hide comments
2017-09-29 11:36:47 Curiosa
Hi @francky, could you please check my last submission? I think I covered the tricky cases too. but still wa :| I'd appreciate some help. @edit, fixed it goddamn i feel dumb. yet another really nice problem Francky. Last edit: 2017-09-29 15:31:27 |
|
2016-02-21 13:45:48 Abhishek pratap singh
@francky: Can you tell me if i'm missing a tricky case or the formula i'm using is wrong? =(Francky)=> Sorry for late answer ; it seems you found a way to get AC ;-) Last edit: 2016-02-24 13:14:20 |
|
2015-12-31 01:52:16 ashishn42
@Francky - I just need to know if their is some problem with logic or am I missing some tricky cases ? Thanks. =(Francky)=> You have some few good answers. Good luck. Last edit: 2015-12-31 12:21:42 |
|
2015-06-21 12:00:00 Maroof
@francky can you tell me if there are lots of WAs in my last submission and is my formula correct? =(Francky)=> I saw few WA, there's tricky cases ; you have to figure what they are. Good luck. Last edit: 2015-06-22 01:36:42 |
|
2015-05-21 21:07:09 Adarsh kumar
Cool problem .. would have been more interesting without those warning :-) |
|
2014-12-06 13:30:20 abdou_93
finaly AC i am really happy :D thanks @francky --ans--> You're welcome. Last edit: 2014-12-06 13:49:29 |
|
2014-03-14 14:33:51 aqfaridi
@francky i m getting WA in python .. my formula is wrong or is there any tricy testcase ?? id : 11247492 --ans(Francky)--> Based on 11246877, (your last Python submissions didn't output anything) your formula seems good, but it's clearly stated in description that there are tricky cases ; you have to figure what can be those ones, it's part of the problem. You will be happy to find them : for me the problem exists only for those cases. Good luck ;-) Last edit: 2014-03-14 14:49:59 |
|
2014-03-14 12:20:09 aqfaridi
why O(log(e)) per testcase solution giving TLE ?? id:11246877 --ans(Francky)--> pike seems a bit slow for that task. I'll take a look if I can increase time limit for allow pike AC. Waiting for that : you can make a one-liner in Python ;-), if you want. Last edit: 2014-03-14 12:29:41 |
|
2014-03-03 23:01:29 abdou_93
why WA ? can you give me any case ? --ans(francky)--> Most of your output consist of WA. You should build some cases with brute force to debug your code. Warning : after that, don't forget that there are tricky cases too. can you tell me if there is lots of WA , for the last submission ? --ans(francky)--> 50%. The tricky cases. Good luck for them. ;-) WA WA WA :( :( The last thing .. please tell me if my formula wrong or not . i wrote it in last code . --ans(francky)--> It's not the simplest, but a correct one. Now you have few WA. I won't help more. Good luck. Last edit: 2014-03-04 13:52:27 |