POJ 1730 Perfect Pth Powers(素数筛选法)
来源:互联网 发布:广数928螺纹编程格式 编辑:程序博客网 时间:2024/06/05 02:09
Perfect Pth Powers
题目链接:
http://poj.org/problem?id=1730
解题思路:
题目大意:
求使得 x = b^p成立时最大的p。
算法思想:
对x进行素数分解,即有x=a1^k1*a2^k2*…*ai^ki*… 其中ai均是素数,易知所有素数的指数ki的最大公约数即是题目所求。
坑点:n可以是负数。。。而且最后结果是偶数,显然是不可能的(一个数的偶次方怎么可能是负数),此时要不断将结果减半,直
到为奇数为止。
举例:64对应的结果应该是6,-64计算后也是6,显然不可能,应该为3,即(-4)^3=-64
AC代码:
#include <iostream>#include <cstdio>#include <cstring>#include <vector>using namespace std;const int N = 100005;int vis[N+5];//这里必须要加一个非0数,不明觉厉vector<int> prime;void get_prime(){ prime.clear(); memset(vis,0,sizeof(vis)); for(int i = 2; i < N; ++i){ int t = N/i; for(int j = 2; j <=t; ++j) vis[i*j] = 1; } for(int i = 2; i < N; ++i){ if(!vis[i]) prime.push_back(i); }}int gcd(int a,int b) { if(b == 0) return a; else return gcd(b,a%b);}int main(){ get_prime(); int n; while(scanf("%d",&n),n) { int len = prime.size(); int cnt,ans = -1; for(int i = 0; i < len; ++i){ if(n%prime[i] == 0){ cnt = 0; while(n%prime[i] == 0){ n /= prime[i]; cnt++; } if(ans == -1) ans = cnt; else ans = gcd(ans,cnt); } } if(ans == -1) ans = 1; if(n < 0){ while(ans % 2 == 0) ans = ans/2; } printf("%d\n",ans); } return 0;}
0 0
- POJ 1730 Perfect Pth Powers(素数筛选法)
- POJ 1730 Perfect Pth Powers(数论)
- POJ 1730 Perfect Pth Powers
- poj 1730 -- Perfect Pth Powers
- poj 1730 Perfect Pth Powers
- poj 1730 Perfect Pth Powers
- poj-1730 Perfect Pth Powers
- poj-1730 Perfect Pth Powers
- poj 1730 Perfect Pth Powers
- POJ-1730-Perfect Pth Powers
- POJ 1730 Perfect Pth Powers
- poj 1730 Perfect Pth Powers
- POJ 1730 Perfect Pth Powers 解题报告(因式分解)
- poj 1730Perfect Pth Powers(分解质因数)
- POJ 题目1730 Perfect Pth Powers(质因子分解)
- zoj 2124 || poj 1730 Perfect Pth Powers
- poj 1730 Perfect Pth Powers(枚举)
- Poj 1730 Perfect Pth Powers (数论 GCD)
- java编写了24小时制的时间加减
- adb启动activity
- 游戏底层逻辑,运动&&寻路(一)
- 匿名存储过程块学习
- leetcode刷题,总结,记录,备忘114
- POJ 1730 Perfect Pth Powers(素数筛选法)
- Java中&&和&以及||和|的区别
- hdu4585splay
- 4种进程间通信方式详解
- JS页面跳转(转载)
- Android自定义View或ViewGroup的流程
- Android开发文档翻译之——Bound Services
- Visual Studio 2015 使用时的一些错误
- everything is object