http://acm.pku.edu.cn/JudgeOnline/problem?id=1331
例えば、
6 9 42
という3つの数は明らかに、6*9≠42なのだけど、基数を13とすれば、42(13)=4*131+2*130=54(10)で等しい、こんな感じで、基数が2〜16の数について計算結果が正しくなる基数を求めてちょって問題。どの基数でもムリな場合は0と出力してくだされ。
3回もstrtolを書いてる時点で終わってる気がするので、誰かスマートにしてあげてオクレ。
main(i,v,k)
{
for(gets(v);gets(v);printf("%d\n",i%17))
for(i=2;k=strtol(v,0,i)*strtol(strchr(v,32),0,i),
!k||(k-strtol(strrchr(v,32),0,i))&&i<17;++i);
}