Problem Link: http://www.codechef.com/problems/CHAPD/
Explanation:
You are given two positive integers – A and B. You have to check whether A is divisible by all the prime divisors of B.
On of my friend told me this solution but I am unable to understand the logic behind this solution:
Solution:import sys
t=int(sys.stdin.readline())
for _ in range(t):
a,b=map(int,sys.stdin.readline().split())
if (a**65)%b==0:
print "Yes"
else:
print "No"
After observing this solution I was not able to understand why did author choose value “65” whereas python cannot compute (2^64)^65 as When I tried to test extreme value i.e. 10^18, 10^18 It gave Memory Error on PC.
I tested replacing value 65 with some random values that are
64, 61, 45, 33, and 17 So I found that for value 17 one test case didn’t passed and for other values code AC’ed for all values.
You may see my submissions here.
I just want to know the logic behind this solution.
Thank You!