Power of Cryptography - poj 2109

Time Limit: 1000MS   Memory Limit: 30000K
Total Submissions: 20351   Accepted: 10284

Description

Current work in cryptography involves (among other things) large prime numbers and computing powers of numbers among these primes. Work in this area has resulted in the practical use of results from number theory and other branches of mathematics once considered to be only of theoretical interest. 
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

The input consists of a sequence of integer pairs n and p with each integer on a line by itself. For all such pairs 1<=n<= 200, 1<=p<10101 and there exists an integer k, 1<=k<=109 such that kn = p.

Output

For each integer pair n and p the value k should be printed, i.e., the number k such that k n =p.

Sample Input

2 16
3 27
7 4357186184021382204544

Sample Output

4
3
1234注:这题分类是贪心算法,但是看了discuss之后竟然发现用double一句可以AC,也是醉了k^n=pn=log(p)/log(k)log(k)=log(p)/n2^log(k)=2^(log(p)/n)k=p^(1/n)附:float,double,long double的范围类型          长度 (bit)           有效数字          绝对值范围float            32                6~7            10^(-37) ~ 10^38double           64                15~16          10^(-307) ~10^308long double      128               18~19          10^(-4931) ~ 10 ^ 4932
 1 #include<iostream>
 2 #include<math.h>
 3 using namespace std;
 4
 5
 6 int main()
 7 {
 8     double n,p;
 9     while(cin>>n>>p)
10         cout<<pow(p,1.0/n)<<endl;
11     return 0;
12 }
时间: 2024-08-04 18:53:26

Power of Cryptography - poj 2109的相关文章

Poj 2109 / OpenJudge 2109 Power of Cryptography

1.Link: http://poj.org/problem?id=2109 http://bailian.openjudge.cn/practice/2109/ 2.Content: Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18872   Accepted: 9520 Description Current work in cryptography involves (

POJ 2109 :Power of Cryptography

Power of Cryptography Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 18258   Accepted: 9208 Description Current work in cryptography involves (among other things) large prime numbers and computing powers of numbers among these primes. W

poj2109 Power of Cryptography(数学题)

题目链接:http://poj.org/problem?id=2109 Description Current work in cryptography involves (among other things) large prime numbers and computing powers of numbers among these primes. Work in this area has resulted in the practical use of results from num

Power of Cryptography(用double的泰勒公式可行分析)

Power of Cryptography Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=99&page=show_problem&problem=49 http://poj.org/problem?id=2109 Time Limit: 1000MS   Memory Limit: 30000K Total Su

POJ_2109 Power of Cryptography 数学

题目链接:http://poj.org/problem?id=2109 参考链接:http://blog.csdn.net/synapse7/article/details/11672691 乍一看似乎高精度,但是double足矣.....15位有效数字, 指数范围-307~308(10位基数) 代码: 1 int main(){ 2 double n, p; 3 while(scanf("%lf %lf", &n, &p) == 2){ 4 double k = po

poj2109(Power of Cryptography)

神水. 求n=log(k p)-> k=pow(p,1/n). G++和C++输出不同,编译器原因. 代码: 1 #include<cstdio> 2 #include<cmath> 3 #include<cstring> 4 #include<iostream> 5 #include<algorithm> 6 7 using namespace std; 8 9 int main() 10 { 11 double n,p; 12 whil

POJ2109——Power of Cryptography

Power of Cryptography DescriptionCurrent work in cryptography involves (among other things) large prime numbers and computing powers of numbers among these primes. Work in this area has resulted in the practical use of results from number theory and

UVA 113 Power of Cryptography (数学)

Power of Cryptography  Background Current work in cryptography involves (among other things) large prime numbers and computing powers of numbers modulo functions of these primes. Work in this area has resulted in the practical use of results from num

Power string(poj 2406)

题目大意,给出一个字符串s,求最大的k,使得s能表示成a^k的形式,如 abab 可以表示成(ab)^2: 方法:首先 先求kmp算法求出next数组:如果 len mod (len-next[len])==0 ,答案就是 len /(len-next[len]),否则答案是1:证明如下: 如果s能表示成 a^k的形式且k>1,k尽可能大,即s可以表示成aaaaaa(k个a):那么next[len]就等于k-1个a的长度:aaaaaaa  aaaaaaa那么 (len-next[len])a的长