uva 10622 - Perfect P-th Powers(数论)
来源:互联网 发布:windows查看gif 编辑:程序博客网 时间:2024/05/22 02:51
题目连接:uva 10622 - Perfect P-th Powers
题目大意:对于x,如果存在最大的p,使得有整数满足x=bp,则称x为perfect pth power。现在给出x,求p。
解题思路:将x分解质因子,所有置因子的个数的最大公约数即为所求p,需要注意的是x为负数的时候,p必须为奇数。特别注意x=-1。
#include <cstdio>#include <cstring>#include <cmath>const int maxp = 333333;int cp, v[maxp], prime[maxp];int gcd (int a, int b) { return b == 0 ? a : gcd(b, a%b);}void primeTable (int n) { memset(v, 0, sizeof(v)); cp = 0; for (int i = 2; i < n; i++) { if (!v[i]) { prime[cp++] = i; for (int j = 2 * i; j < n; j += i) v[j] = 1; } }}int divFactor (long long n) { int ans = 0; for (int i = 0; i < cp && prime[i] <= n; i++) { if (n % prime[i] == 0) { int cnt = 0; while (n % prime[i] == 0) { n /= prime[i]; cnt++; } ans = gcd(ans, cnt); } } if (n > 1 || ans == 0) ans = 1; return ans;}int main () { primeTable(maxp); long long n; while (scanf("%lld", &n) == 1 && n) { int ans = divFactor(n < 0 ? -n : n); if (n < 0) { while (ans%2 == 0) ans /= 2; } printf("%d\n", ans); } return 0;}
1 0
- UVA 10622 - Perfect P-th Powers(数论)
- uva 10622 - Perfect P-th Powers(数论)
- UVA 10622 Perfect P-th Powers(数论)
- UVa 10622 - Perfect P-th Powers(数论)
- UVa 10622 - Perfect P-th Powers
- UVA - 10622 Perfect P-th Powers
- UVA 10622 - Perfect P-th Powers
- UVa 10622 - Perfect P-th Powers
- UVa 10622 - Perfect P-th Powers
- Perfect P-th Powers UVA
- uva 10622——Perfect P-th Powers
- UVa10622 Perfect P-th Powers
- UVa 10622 - Perfect P-th Powers(对数+快速幂)
- UVA 10622 Perfect P-th Powers (唯一分解定理 + GCD)
- 10622 - Perfect P-th Powers(唯一分解定律)
- UVA 10622(p343)----Perfect Pth Powers
- 【数论】poj1730 Perfect Pth Powers
- Poj 1730 Perfect Pth Powers (数论 GCD)
- 三个50岁的美国程序员的生活状态
- box2d刚体添加初始速度,力
- 使用 JMeter 完成常用的压力测试
- Extjs4.10Model模型详解
- Android应用开机自启动失败原因
- uva 10622 - Perfect P-th Powers(数论)
- 将具有关联关系的两个表通过hibernate从数据库中查出来后转成Json对象时报错解决
- C++ 容器的用法
- Extjs4.1MVC详解
- ExtJs4.1布局详解
- 跟我一起学extjs5(09--自定义菜单2)
- 在适配器中,何时调用getView()方法?
- html favorite 添加
- svn Can't revert without reverting children 解决方案