题目
现代密码学的工作涉及大素数和计算数的乘方的大素数模等。这个领域已经产生了很多数论其他数学分支的实际应用(很多以前仅仅是理论推导,没有实际运用的例子)
本题要求快速地计算整数
p(1≤p≤10101)
的正
n(1≤n≤200)
次方根,保证结果一定是整数。
输入
输入包含多组数据,每组数据第一行一个整数n,第二行一个整数p。
输出
对于每组数据,输出 p√n
样例输入
2
16
3
27
7
4357186184021382204544
样例输出
4
3
1234
题解
显然可以牛顿迭代法解决。
但是本题的话。。
#include <cstdio>
#include <cmath>
int main() {
double n, p;
while (scanf("%lf%lf", &n, &p) == 2) {
printf("%.0lf\n", pow(p, 1 / n));
}
return 0;
}