Description
有一个系数均非负的多项式函数p(x),已知p(t)=a,p(a)=b,给出t,a,b,问满足条件的p(x)有多少个
Input
输入三个整数t,a,b(1<=t,a,b<=1e18)
Output
输出满足条件的p(x)个数,如果无解则输出0,如果无穷多解则输出INF
Sample Input
2 2 2
Sample Output
2
Solution
Code
#include<cstdio>
using namespace std;
typedef long long ll;
int main()
{
ll t,a,b;
while(~scanf("%I64d%I64d%I64d",&t,&a,&b))
{
if(t==a)
{
if(a==b)printf("%s\n",a==1?"inf":"2");
else printf("0\n");
}
else if(a==b)printf("1\n");
else if(a<t||b<a)printf("0\n");
else
{
ll p=1,c=0;
while(b)c+=(b%a)*p,b/=a,p*=t;
if(t==1)printf("%d\n",(c==a||c==1)?1:0);
else printf("%d\n",c==a?1:0);
}
}
return 0;
}