poj 2109 Power of Cryptography
2015-06-30 09:28
519 查看
Power of Cryptography
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
Sample Output
Time Limit: 1000MS | Memory Limit: 30000K | |
Total Submissions: 20362 | Accepted: 10289 |
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
/* **二分查找不过这个题内有个BUG */ #include <iostream> #include <cstring> #include <cstdio> #include <cmath> #include <algorithm> #define LL long long #define INF 0x3f3f3f3f using namespace std; int main() { //freopen("in.txt","r",stdin); std::ios::sync_with_stdio(false); double n,p; while(cin>>n>>p) { LL left,right,mid; right = INF; left = 0; while(left <= right) { mid = (left + right)/2; double tt = pow(mid,n); if(tt == p) { cout<<mid<<endl; break; } if(tt > p) right = mid; if(tt < p) left = mid+1; } } return 0; } /* **这就是bug */ #include <iostream> #include <cmath> using namespace std; int main() { double n,p; while(cin>>n>>p) { cout<<pow(p,1/n)<<endl; } return 0; }
相关文章推荐
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points
- POJ1523 SPF dfs
- POJ-1001 求高精度幂-大数乘法系列
- POJ-1003 Hangover
- POJ-1004 Financial Management
- 用单调栈解决最大连续矩形面积问题
- 2632 Crashing Robots的解决方法
- 1573 Robot Motion (简单题)
- 【高手回避】poj3268,一道很水的dijkstra算法题
- POJ 1088 滑雪
- poj2387 Til the Cows Come Home—Dijkstra模板
- poj 2485 Highways
- poj 1511 Invitation Cards
- POJ水题1083区间重叠问题
- 【网络流-最大流-Dinic-建模】POJ3281 Dining:Pascal 解法
- poj1042
- poj1080