CODEVS 1703 指数判定

题目描述 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;
}

 

此条目发表在CODEVS, 其他, 数学分类目录。将固定链接加入收藏夹。