题目描述 Description
我们知道一个数字m, 它既可以是a的b次方, 也可以是c的d次方. 不难看出, a和c之间应该是(a, c)≠1. 现在给你m和a, 请你计算出b来.
输入描述 Input Description
第1行为一个正整数n. 第2~n+1行每行包括两个正整数m和a.
输出描述 Output Description
共n行. 每行为一个小数点后三位实数b, 这个b满足a的b次方为m.
样例输入 Sample Input
2
4 9
357418 685样例输出 Sample Output
0.631
1.958数据范围及提示 Data Size & Hint
对于100%的数据, 1≤n≤10000, 1≤m≤214748364700, 1<a≤214748364700.
$$\log_{a}m=\frac{\ln m}{\ln a}$$。。。。
#include <cstdio> #include <cmath> using namespace std; int n; double ans; long long m,a; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%lld%lld",&m,&a); printf("%.3lf\n",log(m)/log(a)); } return 0; }