题目大意:
给出一个x,求满足x = b^p,p最大是多少?
解题思路:
x可以表示为:x = p1^e1 * p2^e2 * p3^e3 ....... * pn^en。
p = gcd (e1,e2,.......en);
x是负数的时候,p的值不能为偶数,这是坑点之一,还有一个是,题目上说只能用lld,我用的I64d,wa了一下午,想死的冲动都有了,直接上代码,我想静静~~~~~
代码:
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define maxn 10001010 int a[maxn], b[maxn];11 int k;12 void prime ()13 {14 long long i, j;15 for(k=0, i=2; i