E. Vasya and Polynomial
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Vasya is studying in the last class of school and soon he will take exams. He decided to study polynomials. Polynomial is a function P(x)?=?a0?+?a1x1?+?...?+?anxn. Numbers ai are called coefficients of a polynomial, non-negative integer n is called a degree of a polynomial.
Vasya has made a bet with his friends that he can solve any problem with polynomials. They suggested him the problem: "Determine how many polynomials P(x) exist with integer non-negative coefficients so that , and , where and b are given positive integers"?
Vasya does not like losing bets, but he has no idea how to solve this task, so please help him to solve the problem.
Input
The input contains three integer positive numbers no greater than 1018.
Output
If there is an infinite number of such polynomials, then print "inf" without quotes, otherwise print the reminder of an answer modulo109?+?7.
Sample test(s)
input
2 2 2
output
input
2 3 3
output
题意:RT
思路:给出了t,a,b,那么有
f(t)=a0+a1*t+a2*t^2+...+an*t^n=a
f(a)=a0+a1*a+a2*a^2+...+an*a^n=b
a1+a2*t+...+an*t^(n-1)=(a-a0)/t
a1+a2*a+...+an*a^(n-1)=(b-a0)/a
那么(a-a0)%t=0 && (b-a0)%a=0
a%t=a0%t && b%a=a0%a
因为b>a
所以b=k*a+a0;
又因为a0
所以a0=b%a 或者 a0=b%a+a
这样递归求解各个常数就可以了