Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 24345 | Accepted: 12246 |
Description
This problem involves the efficient computation of integer roots of numbers.
Given an integer n>=1 and an integer p>= 1 you have to write a program that determines the n th positive root of p. In this problem, given such integers n and p, p will always be of the form k to the nth. power, for an integer k (this integer is what your program must find).
Input
Output
Sample Input
2 16 3 27 7 4357186184021382204544
Sample Output
4 3 1234 题目大意:给出n和p,k的n次方等于p,求k的值。 解题思路:要注意的就是精度问题。本题可以将公式变换为k=p^(1/n),直接用pow函数就可以。
#include
#include
#include
using namespace std;
int main(){
double n,p,k;
while(scanf("%lf %lf",&n,&p)!=EOF){
k=(double)pow(p,1.0/n);
printf("%.0lf\n",k);
}
}