您的位置:首页 > 其它

uva 113 - Power of Cryptography

2012-06-14 14:26 441 查看



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 number theory and other branches of mathematics
once considered to be of only theoretical interest.

This problem involves the efficient computation of integer roots of numbers.

The Problem

Given an integer

and an integer


you are to write a program that determines


, the positive


root of
p. In this problem, given such integers n and p, p will always be of the form


for an integer
k (this integer is what your program must find).

The 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


,


and there exists an integer
k,

such that


.

The Output

For each integer pair n and p the value

should be printed, i.e., the number
k such that

.

Sample Input

2
16
3
27
7
4357186184021382204544


Sample Output

4
3
1234


感觉double会有精度问题还是水过了。。

#include<stdio.h>

#include<math.h>

void main()

{double n,p;

long left,right,mid;

while (scanf("%lf%lf",&n,&p)!=EOF)

{left=0; right=1000000000;

while (left<right)

{mid=(left+right)/2;

if (pow(mid,n)==p) break;

if (pow(mid,n)>p) right=mid;

if (pow(mid,n)<p) left=mid;

}

printf("%d\n",mid);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: